:root{
    --magenta:#c90068;
    --magenta2:#ec167f;
    --green:#20b956;
    --green2:#5ee488;
    --gold:#ffd21e;
    --black:#0b0b0f;
    --dark:#151515;
    --soft:#f6f7f8;
    --line:#e6e8ec;
    --text:#17171c;
    --muted:#667085;
    --side:#fff8fb;
    --side2:#f1fff5;
    --sidebar-width:292px;
    --sidebar-mini:84px;
}
*{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth
}
body.ipmas-body{
    margin:0;
    font-family:'Inter',Arial,sans-serif;
    background:#f4f5f6;
    color:var(--text);
    font-size:14px
}
a{
    text-decoration:none
}
.btn-industrial.primary{
    background:linear-gradient(135deg,var(--magenta),var(--magenta2));
    border:0;
    color:#fff!important;
    border-radius:12px;
    font-weight:800;
    padding:10px 16px
}
.ipmas-input{
    border:1px solid #e0e2e7;
    border-radius:14px;
    padding:12px 14px
}
.glass-modal{
    border:0;
    border-radius:28px;
    box-shadow:0 30px 80px rgba(0,0,0,.28);
    overflow:hidden
}
.plane-animation{
    text-align:center;
    height:100px;
    overflow:hidden;
    padding-top:10px
}
.plane-animation img{
    width:150px;
    animation:flyIn 1.2s ease both
}
.plane-animation.small{
    height:84px
}
.plane-animation.small img{
    width:120px
}
.dotted-line{
    border-top:3px dotted var(--magenta);
    width:60%;
    margin:auto;
    animation:dash 1.6s linear infinite
}
@keyframes flyIn{
    from{
        transform:translateX(-220px) translateY(42px);
        opacity:0
    }
    to{
        transform:translateX(0);
        opacity:1
    }
}
@keyframes dash{
    from{
        transform:translateX(-24px)
    }
    to{
        transform:translateX(24px)
    }
}
.password-wrap{
    position:relative
}
.password-input{
    padding-right:48px!important
}
.password-eye{
    position:absolute;
    right:9px;
    top:50%;
    transform:translateY(-50%);
    border:0;
    background:transparent;
    color:var(--magenta);
    font-size:16px;
    width:34px;
    height:34px
}

/* Fixed professional loader: prevents huge logo from breaking the index page */
.ipmas-loader{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,248,251,.96));
    transition:opacity .45s ease,visibility .45s ease;
}
.ipmas-loader.hide-loader{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}
.loader-card{
    width:min(360px,90vw);
    padding:34px 28px;
    border-radius:28px;
    background:#fff;
    box-shadow:0 25px 80px rgba(0,0,0,.18);
    border:1px solid rgba(201,0,104,.12);
    text-align:center;
}
.loader-card img{
    width:96px!important;
    height:96px!important;
    object-fit:contain;
    display:block;
    margin:0 auto 16px;
}
.loader-card strong{
    display:block;
    font-size:17px;
    font-weight:900;
    color:var(--black);
    margin-top:10px;
}
.loader-card span{
    display:block;
    font-size:13px;
    color:var(--muted);
    margin-top:5px;
}
.spinner-ring{
    width:44px;
    height:44px;
    border-radius:50%;
    border:4px solid #f1f1f1;
    border-top-color:var(--magenta);
    border-right-color:var(--green);
    margin:0 auto;
    animation:ipmasSpin .8s linear infinite;
}
@keyframes ipmasSpin{
    to{
        transform:rotate(360deg)
    }
}

/* Public index */
.public-index-page{
    background:#fff
}
.public-hero-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:92px;
    z-index:1000;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:15px 42px;
    background:rgba(0,0,0,.42);
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(255,255,255,.12)
}
.public-brand{
    display:flex;
    align-items:center;
    gap:13px;
    color:#fff
}
.public-brand img{
    width:74px;
    height:74px;
    object-fit:contain
}
.public-brand strong{
    font-size:38px;
    font-weight:900;
    line-height:.85;
    letter-spacing:.5px
}
.public-brand span{
    display:block;
    color:#fff;
    font-size:12px;
    font-weight:700;
    line-height:1.25
}
.public-nav-links{
    display:flex;
    align-items:center;
    gap:10px
}
.public-nav-links a,.public-nav-links button{
    color:#fff;
    background:transparent;
    border:0;
    font-weight:800;
    padding:14px 18px;
    border-radius:6px;
    font-size:14px
}
.public-nav-links a.active{
    border-bottom:3px solid var(--magenta)
}
.public-nav-links a:hover,.public-nav-links button:hover{
    color:#fff;
    background:rgba(201,0,104,.95)
}
.secure-login-btn{
    border:1px solid rgba(255,255,255,.55)!important;
    border-radius:10px!important;
    margin-left:8px
}
.public-hero-slider{
    min-height:100vh;
    background:center/cover no-repeat;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#fff;
    padding:130px 18px 70px;
    transition:background-image 1s ease
}
.hero-dark-layer{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.66),rgba(0,0,0,.48),rgba(0,0,0,.72))
}
.hero-center-content{
    position:relative;
    z-index:2;
    max-width:980px
}
.hero-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:linear-gradient(135deg,var(--magenta),var(--magenta2));
    border-radius:999px;
    padding:13px 22px;
    font-weight:900;
    margin-bottom:26px
}
.hero-center-content h1{
    font-size:clamp(38px,5vw,68px);
    font-weight:900;
    line-height:1.12;
    margin:0 0 20px;
    text-shadow:0 3px 15px rgba(0,0,0,.35)
}
.hero-center-content p{
    font-size:17px;
    line-height:1.65;
    max-width:760px;
    margin:0 auto 28px;
    color:#fff
}
.hero-search-public{
    max-width:770px;
    height:64px;
    background:#fff;
    border-radius:999px;
    margin:0 auto 28px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 22px;
    box-shadow:0 22px 60px rgba(0,0,0,.34)
}
.hero-search-public i{
    color:#7b7b87;
    font-size:20px
}
.hero-search-public input{
    border:0;
    outline:0;
    flex:1;
    font-size:15px;
    color:#222
}
.hero-action-row{
    display:flex;
    justify-content:center;
    gap:22px;
    flex-wrap:wrap
}
.hero-primary-btn,.hero-secondary-btn{
    border:0;
    border-radius:8px;
    padding:18px 32px;
    font-weight:900;
    color:#fff
}
.hero-primary-btn{
    background:linear-gradient(135deg,var(--magenta),var(--magenta2))
}
.hero-secondary-btn{
    background:rgba(0,0,0,.25);
    border:1px solid rgba(255,255,255,.65)
}
.security-note{
    margin-top:28px;
    color:#f8f8f8
}
.hero-dots{
    margin-top:28px;
    display:flex;
    justify-content:center;
    gap:12px
}
.hero-dots span{
    width:16px;
    height:5px;
    border-radius:99px;
    background:#fff
}
.hero-dots span.active{
    background:var(--magenta);
    width:24px
}
.hero-arrow{
    position:absolute;
    z-index:4;
    top:46%;
    width:62px;
    height:62px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(0,0,0,.45);
    color:#fff;
    font-size:28px
}
.hero-arrow.left{
    left:42px
}
.hero-arrow.right{
    right:42px
}
.public-about-section{
    padding:110px 38px;
    background:#fff
}
.public-section-grid{
    max-width:1320px;
    margin:auto;
    display:grid;
    grid-template-columns:1fr 1.7fr;
    gap:55px;
    align-items:center
}
.section-mini-title{
    color:var(--green);
    font-weight:900;
    font-size:13px;
    letter-spacing:.5px
}
.about-left-copy h2{
    font-weight:900;
    font-size:clamp(32px,3vw,46px);
    line-height:1.12;
    margin:15px 0
}
.about-left-copy p{
    line-height:1.9;
    color:#4b5563
}
.about-action{
    background:linear-gradient(135deg,var(--magenta),var(--magenta2));
    color:#fff;
    border:0;
    border-radius:8px;
    padding:15px 24px;
    font-weight:900
}
.about-feature-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px
}
.feature-tile{
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 10px 28px rgba(0,0,0,.05);
    padding:30px 20px;
    text-align:center
}
.feature-tile i{
    width:64px;
    height:64px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--green);
    color:#fff;
    font-size:27px;
    margin-bottom:18px
}
.feature-tile:nth-child(even) i{
    background:var(--magenta)
}
.feature-tile h3{
    font-size:16px;
    font-weight:900
}
.feature-tile p{
    font-size:13px;
    color:#667085;
    line-height:1.6
}
.public-announcements-section{
    padding:80px 38px 55px;
    background:#fafafa
}
.announcements-head{
    max-width:1320px;
    margin:0 auto 28px;
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:20px
}
.announcements-head h2{
    font-weight:900;
    font-size:34px;
    margin:10px 0 0
}
.announce-controls{
    display:flex;
    gap:14px;
    align-items:center
}
.announce-controls button{
    height:44px;
    border-radius:50%;
    border:1px solid #ddd;
    background:#fff;
    width:44px
}
.announce-controls .view-all-btn{
    width:auto;
    border-radius:8px;
    border:1px solid var(--magenta);
    color:var(--magenta);
    font-weight:900;
    padding:0 32px
}
.announcement-carousel{
    max-width:1320px;
    margin:auto;
    display:flex;
    gap:22px;
    overflow-x:auto;
    scroll-behavior:smooth;
    padding:4px 2px 14px
}
.announcement-carousel::-webkit-scrollbar{
    height:5px
}
.announcement-carousel::-webkit-scrollbar-thumb{
    background:var(--magenta);
    border-radius:99px
}
.announcement-card{
    position:relative;
    min-width:260px;
    max-width:260px;
    background:#fff;
    border-radius:10px;
    border:1px solid #eceef1;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.06)
}
.announcement-card img{
    width:100%;
    height:120px;
    object-fit:cover
}
.date-badge{
    position:absolute;
    top:0;
    left:0;
    color:#fff;
    font-weight:900;
    text-align:center;
    width:58px;
    padding:9px 0;
    border-radius:0 0 8px 0
}
.date-badge.magenta{
    background:var(--magenta)
}
.date-badge.green{
    background:var(--green)
}
.announcement-card h3{
    font-size:16px;
    font-weight:900;
    line-height:1.25;
    padding:15px 16px 5px;
    margin:0
}
.announcement-card p{
    font-size:13px;
    color:#5f6470;
    line-height:1.55;
    padding:0 16px;
    margin:0 0 10px
}
.announcement-card a{
    display:block;
    color:var(--magenta);
    font-weight:900;
    font-size:13px;
    padding:0 16px 16px
}
.announcement-empty{
    max-width:380px;
    margin:20px auto;
    text-align:center;
    border:1px dashed var(--magenta);
    border-radius:18px;
    background:#fff;
    padding:32px
}
.announcement-empty img{
    width:120px
}
.announcement-empty h3{
    color:var(--magenta);
    font-weight:900
}
.announce-progress{
    max-width:1320px;
    margin:8px auto 0;
    height:6px;
    background:#eee;
    border-radius:999px;
    overflow:hidden
}
.announce-progress span{
    display:block;
    width:25%;
    height:100%;
    background:var(--magenta)
}
.public-footer{
    background:#0a0a0c;
    color:#fff;
    position:relative
}
.footer-color-line{
    display:flex;
    height:8px
}
.footer-color-line span:nth-child(1){
    background:var(--green);
    width:30%
}
.footer-color-line span:nth-child(2){
    background:var(--gold);
    width:20%
}
.footer-color-line span:nth-child(3){
    background:#fff;
    width:50%
}
.footer-grid{
    max-width:1320px;
    margin:auto;
    display:grid;
    grid-template-columns:1.5fr 1fr 1.2fr 1.1fr;
    gap:48px;
    padding:45px 38px
}
.footer-brand img{
    width:70px;
    float:left;
    margin-right:12px
}
.footer-brand h2{
    font-weight:900;
    margin:0
}
.footer-grid h3{
    font-size:18px;
    font-weight:900;
    margin-bottom:18px
}
.footer-grid p,.footer-grid a{
    color:#e6e6e6;
    display:block;
    line-height:1.8
}
.footer-grid a:before{
    content:'›';
    color:var(--magenta);
    font-weight:900;
    margin-right:8px
}
.secure-footer-login{
    border:1px solid var(--magenta);
    background:transparent;
    color:#fff;
    border-radius:8px;
    padding:13px 18px;
    font-weight:900
}
.footer-bottom{
    text-align:center;
    padding:14px;
    border-top:1px solid rgba(255,255,255,.12);
    color:#d7d7d7
}
.public-module-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.55);
    backdrop-filter:blur(8px);
    z-index:2000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px
}
.public-module-modal.active{
    display:flex
}
.public-module-box{
    width:min(820px,96vw);
    max-height:88vh;
    overflow:auto;
    background:#fff;
    border-radius:10px;
    box-shadow:0 25px 90px rgba(0,0,0,.35);
    padding:28px;
    position:relative
}
.public-modal-close{
    position:absolute;
    right:16px;
    top:14px;
    background:#fff;
    border:0;
    font-size:20px
}
.module-modal-title{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    text-align:left
}
.modal-icon{
    width:58px;
    height:58px;
    border-radius:50%;
    background:var(--magenta);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px
}
.module-modal-title h2{
    font-size:28px;
    font-weight:900;
    margin:0
}
.module-modal-title p{
    margin:2px 0 0;
    font-size:13px
}
.modal-security-alert{
    margin:24px auto 24px;
    max-width:660px;
    background:#fff0f6;
    border:1px solid #fac5df;
    color:var(--magenta);
    font-weight:800;
    border-radius:6px;
    padding:10px 14px;
    text-align:center
}
.public-module-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px
}
.public-module-card{
    border:1px solid #e4e6ea;
    border-radius:10px;
    text-align:center;
    padding:22px 16px
}
.public-module-card i{
    width:58px;
    height:58px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--magenta);
    color:#fff;
    font-size:25px;
    margin-bottom:13px
}
.public-module-card.green i{
    background:var(--green)
}
.public-module-card h3{
    font-size:15px;
    font-weight:900
}
.public-module-card p{
    font-size:12px;
    color:#5f6673;
    line-height:1.5
}
/* internal */
.app-shell{
    min-height:100vh;
    padding-left:var(--sidebar-width);
    padding-top:74px;
    transition:.2s
}
.app-shell.collapsed{
    padding-left:var(--sidebar-mini)
}
.app-topbar{
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:74px;
    z-index:1000;
    background:#fff;
    border-bottom:1px solid #eceef1;
    display:flex;
    align-items:center;
    gap:14px;
    padding:10px 16px;
    box-shadow:0 3px 14px rgba(0,0,0,.04)
}
.hamburger,.top-icon,.top-user,.sms-chip{
    border:1px solid #e4e7ec;
    background:#fff;
    border-radius:12px;
    padding:10px 13px;
    color:var(--magenta);
    font-weight:800
}
.topbar-title{
    display:flex;
    gap:11px;
    align-items:center
}
.topbar-title img{
    width:48px;
    height:48px;
    object-fit:contain
}
.topbar-title strong{
    font-weight:900;
    display:block
}
.topbar-title span{
    font-size:11px;
    color:var(--magenta);
    font-weight:900
}
.topbar-search{
    flex:1;
    max-width:620px;
    position:relative
}
.topbar-search i{
    position:absolute;
    left:14px;
    top:12px;
    color:var(--magenta)
}
.topbar-search input{
    width:100%;
    border:1px solid #e4e7ec;
    border-radius:14px;
    background:#fafafa;
    padding:11px 14px 11px 40px;
    outline:0
}
.global-search-results{
    position:absolute;
    top:48px;
    left:0;
    right:0;
    background:#fff;
    border:1px solid #eee;
    box-shadow:0 18px 45px rgba(0,0,0,.14);
    border-radius:12px;
    display:none;
    z-index:1600;
    overflow:hidden
}
.search-result{
    display:block;
    color:#1f2937;
    padding:12px 14px;
    border-bottom:1px solid #f1f2f4
}
.search-result:hover{
    background:#fff0f6
}
.topbar-actions{
    display:flex;
    gap:8px;
    align-items:center
}
.ipmas-sidebar{
    position:fixed;
    top:74px;
    left:0;
    bottom:0;
    width:var(--sidebar-width);
    z-index:999;
    background:linear-gradient(180deg,#fff7fb,#effff4);
    border-right:1px solid #e9edf0;
    overflow:auto;
    transition:.2s
}
.app-shell.collapsed .ipmas-sidebar{
    width:var(--sidebar-mini);
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
    scrollbar-color:var(--magenta) transparent;
}
.app-shell.collapsed .ipmas-sidebar::-webkit-scrollbar{
    width:6px;
}

.app-shell.collapsed .ipmas-sidebar::-webkit-scrollbar-track{
    background:transparent;
}

.app-shell.collapsed .ipmas-sidebar::-webkit-scrollbar-thumb{
    background:var(--magenta);
    border-radius:999px;
}

.app-shell.collapsed .sidebar-menu{
    padding-bottom:120px;
}

.sidebar-header{
    display:flex;
    align-items:center;
    gap:12px;
    padding:16px;
    background:#fff;
    border-bottom:1px solid #eceef1
}
.sidebar-header img{
    width:50px;
    height:50px;
    object-fit:contain
}
.sidebar-header strong{
    font-size:20px;
    font-weight:900
}
.sidebar-header span{
    font-size:11px;
    color:var(--magenta);
    font-weight:900
}
.sidebar-menu{
    padding:12px 12px 90px
}
.side-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#20232a;
    padding:10px;
    border-radius:14px;
    margin-bottom:6px;
    transition:.16s
}
.side-link-main{
    display:flex;
    gap:10px;
    align-items:center
}
.side-icon{
    min-width:38px;
    width:38px;
    height:38px;
    border-radius:12px;
    background:#fff;
    border:1px solid #f0d7e5;
    color:var(--magenta);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px
}
.side-link:hover,.side-link.active,.module-block.open>.side-link{
    background:#fff;
    box-shadow:0 8px 22px rgba(201,0,104,.09);
    color:var(--magenta)
}
.side-link span{
    font-size:13px;
    font-weight:900
}
.side-link small{
    display:block;
    color:#7a7e87;
    font-size:10px
}
.side-arrow{
    color:#a2a6ad;
    transition:.2s
}
.module-block.open .side-arrow{
    transform:rotate(180deg)
}
.module-submenu{
    display:none;
    margin:0 0 8px 54px;
    border-left:2px solid var(--green);
    padding:4px 0 4px 10px
}
.module-submenu.open{
    display:block
}
.module-submenu a{
    display:flex;
    gap:8px;
    align-items:center;
    color:#333;
    padding:8px 10px;
    border-radius:8px;
    font-size:12px
}
.module-submenu a i{
    color:var(--green);
    font-size:10px
}
.module-submenu a:hover{
    background:#fff;
    color:var(--magenta)
}
.app-shell.collapsed .sidebar-header div,.app-shell.collapsed .side-link span,.app-shell.collapsed .side-link small,.app-shell.collapsed .side-arrow{
    display:none
}
.app-shell.collapsed .side-link{
    justify-content:center
}
.app-shell.collapsed .side-link-main{
    justify-content:center
}
.app-shell.collapsed .module-submenu{
    display:none!important
}
.collapsed-hint-card{
    position:fixed;
    left:94px;
    min-width:340px;
    max-width:390px;
    background:#fff;
    border:1px solid #eee;
    box-shadow:0 25px 70px rgba(0,0,0,.24);
    border-radius:16px;
    display:none;
    z-index:3000;
    overflow:hidden
}
.collapsed-hint-card.show{
    display:block
}
.hint-head{
    display:flex;
    gap:12px;
    align-items:center;
    background:#fff0f6;
    padding:14px
}
.hint-head i{
    color:var(--magenta);
    font-size:20px
}
.hint-head b{
    display:block
}
.hint-head small{
    display:block;
    color:#68707d;
    font-size:12px
}
.hint-links{
    padding:8px
}
.hint-links a{
    display:flex;
    align-items:center;
    gap:9px;
    color:#333;
    padding:9px 11px;
    border-radius:10px;
    font-size:12px
}
.hint-links a:hover{
    background:#f1fff5;
    color:var(--green)
}
.page-content{
    padding:28px;
    min-height:calc(100vh - 74px)
}
.module-header{
    background:linear-gradient(135deg,#fff,#fff5fa);
    border:1px solid #edf0f2;
    border-radius:22px;
    padding:26px;
    margin-bottom:20px;
    box-shadow:0 12px 30px rgba(0,0,0,.04)
}
.module-header h2{
    font-weight:900;
    margin:0 0 8px
}
.module-header p{
    margin:0;
    color:#667085
}
.kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-bottom:20px
}
.kpi-card{
    position:relative;
    background:#fff;
    border:1px solid #eceef1;
    border-radius:20px;
    padding:22px;
    box-shadow:0 10px 25px rgba(0,0,0,.045);
    cursor:help
}
.kpi-code{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:40px;
    border-radius:12px;
    background:var(--magenta);
    color:#fff;
    font-weight:900
}
.kpi-card:nth-child(even) .kpi-code{
    background:var(--green)
}
.kpi-card h3{
    font-size:30px;
    font-weight:900;
    margin:14px 0 2px
}
.kpi-card>span:last-child{
    color:#667085
}
.kpi-card:after,.chart-explain-card:after{
    content:attr(data-detail);
    position:absolute;
    left:18px;
    right:18px;
    top:100%;
    margin-top:10px;
    background:#111;
    color:#fff;
    border-radius:12px;
    padding:12px;
    font-size:12px;
    line-height:1.5;
    opacity:0;
    pointer-events:none;
    transform:translateY(-5px);
    transition:.18s;
    z-index:100
}
.kpi-card:hover:after,.chart-explain-card:hover:after{
    opacity:1;
    transform:translateY(0)
}
.dashboard-grid{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:18px
}
.panel-card,.table-card,.setting-card{
    position:relative;
    background:#fff;
    border:1px solid #eceef1;
    border-radius:20px;
    padding:22px;
    box-shadow:0 10px 28px rgba(0,0,0,.045);
    margin-bottom:18px
}
.panel-card h3,.table-card h3,.setting-card h4{
    font-size:18px;
    font-weight:900;
    margin-bottom:14px
}
.axis-help{
    margin-top:8px;
    background:#fff8db;
    border:1px solid #f7e7a1;
    border-radius:12px;
    padding:10px;
    color:#6b5700;
    font-weight:800
}
.production-flow{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:10px;
    margin-top:16px
}
.flow-step{
    background:#f7f8fa;
    border:1px solid #eee;
    border-radius:14px;
    padding:12px;
    text-align:center;
    font-weight:800
}
.flow-step strong{
    display:block;
    color:var(--magenta)
}
.highlight-list>div{
    padding:13px;
    border-bottom:1px solid #f0f1f3
}
.highlight-list b{
    display:block;
    color:var(--magenta)
}
.highlight-list span{
    color:#667085
}
.ipmas-footer{
    padding:15px 28px;
    color:#777;
    text-align:center
}
.nav-popup-menu,.sms-popup{
    position:absolute;
    top:64px;
    right:16px;
    background:#fff;
    border:1px solid #eee;
    border-radius:16px;
    box-shadow:0 18px 50px rgba(0,0,0,.18);
    display:none;
    z-index:1800;
    padding:12px;
    min-width:280px
}
.sms-popup{
    right:110px
}
.nav-popup-menu.show,.sms-popup.show{
    display:block
}
.nav-popup-menu a,.nav-popup-menu button,.sms-popup button{
    display:block;
    width:100%;
    border:0;
    background:transparent;
    text-align:left;
    color:#333;
    padding:10px;
    border-radius:10px
}
.nav-popup-menu a:hover,.nav-popup-menu button:hover,.sms-popup button:hover{
    background:#fff0f6;
    color:var(--magenta)
}
.nav-profile-head{
    display:flex;
    gap:10px;
    align-items:center;
    border-bottom:1px solid #eee;
    padding-bottom:10px;
    margin-bottom:8px
}
.nav-profile-head img{
    width:48px;
    height:48px;
    object-fit:contain
}
.sms-balance-big{
    font-size:28px;
    color:var(--magenta);
    font-weight:900
}
.no-data{
    text-align:center;
    color:#667085
}
.no-data img,.no-data-page img{
    max-width:180px
}
.mobile-sidebar-backdrop{
    display:none
}
@media(max-width:1100px){
    .public-hero-header{
        height:auto;
        align-items:flex-start;
        flex-direction:column;
        padding:14px 22px
    }
    .public-nav-links{
        width:100%;
        overflow-x:auto
    }
    .public-section-grid,.footer-grid,.dashboard-grid{
        grid-template-columns:1fr
    }
    .about-feature-grid,.public-module-grid{
        grid-template-columns:repeat(2,1fr)
    }
    .app-shell,.app-shell.collapsed{
        padding-left:0;
        padding-top:110px
    }
    .app-topbar{
        height:auto;
        min-height:74px;
        flex-wrap:wrap
    }
    .topbar-search{
        order:10;
        flex-basis:100%;
        max-width:none
    }
    .ipmas-sidebar{
        top:0;
        transform:translateX(-105%);
        z-index:2500
    }
    .ipmas-sidebar.mobile-open{
        transform:translateX(0)
    }
    .mobile-sidebar-backdrop.show{
        display:block;
        position:fixed;
        inset:0;
        background:rgba(0,0,0,.45);
        z-index:2400
    }
    .kpi-grid{
        grid-template-columns:repeat(2,1fr)
    }
}
@media(max-width:700px){
    .hero-arrow{
        display:none
    }
    .hero-center-content h1{
        font-size:34px
    }
    .public-brand strong{
        font-size:28px
    }
    .public-nav-links a,.public-nav-links button{
        padding:10px
    }
    .hero-search-public{
        height:auto;
        padding:16px;
        border-radius:22px
    }
    .about-feature-grid,.public-module-grid,.kpi-grid,.production-flow{
        grid-template-columns:1fr
    }
    .footer-grid{
        padding:35px 22px
    }
    .public-about-section,.public-announcements-section{
        padding-left:22px;
        padding-right:22px
    }
    .topbar-title span{
        display:none
    }
    .page-content{
        padding:15px
    }
}

/* =========================================================
   IPMAS V3 sidebar, theme, language and print improvements
   ========================================================= */
.module-submenu a .submenu-icon,
.hint-links a .submenu-icon,
.hint-links a i {
    width: 24px;
    min-width: 24px;
    height: 24px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff2f8;
    color: var(--magenta);
    font-size: 11px;
    box-shadow: inset 0 0 0 1px rgba(201,0,104,.09);
}
.module-submenu a:nth-child(even) .submenu-icon,
.hint-links a:nth-child(even) i {
    background: #f0fff5;
    color: var(--green);
}
.module-submenu a:hover .submenu-icon {
    background: var(--magenta);
    color: #fff;
}
.system-module {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed #e8ccd9;
}
.logout-side-link {
    color: #dc2626 !important;
    font-weight: 900 !important;
}
.logout-side-link .submenu-icon {
    background:#fff1f2!important;
    color:#dc2626!important;
}
.logout-side-link:hover {
    background:#fff1f2!important;
}

/* Theme support */
body.theme-default {
    --magenta:#c90068;
    --green:#17b657;
    --gold:#f5c518;
}
body.theme-forest {
    --magenta:#168044;
    --green:#20bf55;
    --gold:#f5c518;
}
body.theme-gold {
    --magenta:#bd7a00;
    --green:#20bf55;
    --gold:#f5c518;
}
body.theme-dark {
    --magenta:#d20a68;
    --green:#20bf55;
    --gold:#f5c518;
    background:#111827!important;
    color:#e5e7eb;
}
body.theme-dark .page-content, body.theme-dark .dashboard-clean, body.theme-dark .profile-page, body.theme-dark .settings-page, body.theme-dark .password-page {
    background:#111827!important;
}
body.theme-dark .app-topbar, body.theme-dark .ipmas-sidebar, body.theme-dark .module-header, body.theme-dark .panel-card, body.theme-dark .table-card, body.theme-dark .setting-card, body.theme-dark .profile-card, body.theme-dark .profile-details-card, body.theme-dark .activity-card, body.theme-dark .settings-card, body.theme-dark .dashboard-card, body.theme-dark .dashboard-filter-card, body.theme-dark .kpi-card {
    background:#1f2937!important;
    border-color:#374151!important;
    color:#e5e7eb!important;
}
body.theme-dark .module-header h2, body.theme-dark .module-header h3, body.theme-dark .panel-card h3, body.theme-dark .table-card h3, body.theme-dark .setting-card h4, body.theme-dark .side-link, body.theme-dark .topbar-title strong, body.theme-dark .profile-info-row span, body.theme-dark .profile-info-row strong {
    color:#f9fafb!important;
}
body.theme-dark .module-header p, body.theme-dark .side-link small, body.theme-dark .panel-card p, body.theme-dark .card-subtitle, body.theme-dark .text-muted {
    color:#cbd5e1!important;
}
body.theme-dark .topbar-search input, body.theme-dark .filter-controls input, body.theme-dark .filter-controls select, body.theme-dark .form-control, body.theme-dark .ipmas-input {
    background:#111827!important;
    border-color:#374151!important;
    color:#f9fafb!important;
}
body.theme-dark .module-submenu a {
    color:#e5e7eb!important;
}
body.theme-dark .module-submenu a:hover {
    background:#111827!important;
}

.ipmas-print-header {
    display:none;
}
.ipmas-print-actions {
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-bottom:14px;
}
.ipmas-print-btn {
    border:0;
    border-radius:12px;
    padding:11px 16px;
    font-weight:900;
    background:linear-gradient(135deg,var(--magenta),#9b124f);
    color:#fff;
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.ipmas-print-btn:hover {
    filter:brightness(.96);
    transform:translateY(-1px);
}
.printable-page {
    position:relative;
}

@media print {
    @page {
        size: A4;
        margin: 14mm;
    }
    body {
        background:#fff!important;
        color:#111!important;
    }
    .app-topbar, .ipmas-sidebar, .ipmas-footer, .collapsed-hint-card, .mobile-sidebar-backdrop,
    .ipmas-print-actions, .btn, button, .dataTables_filter, .dataTables_length, .dt-buttons,
    .dataTables_paginate, .dataTables_info, .nav-popup-menu, .sms-popup {
        display:none!important;
    }
    .app-shell, .app-shell.collapsed {
        padding-left:0!important;
        padding-top:0!important;
    }
    .page-content {
        padding:0!important;
        width:100%!important;
        min-height:auto!important;
    }
    .module-header, .panel-card, .table-card, .setting-card, .dashboard-card, .kpi-card {
        box-shadow:none!important;
        border:1px solid #ddd!important;
        break-inside:avoid;
    }
    .ipmas-print-header {
        display:block!important;
        text-align:center;
        margin-bottom:18px;
        padding-bottom:10px;
        border-bottom:2px solid #c90068;
    }
    .ipmas-print-header img {
        width:80px;
        height:80px;
        object-fit:contain;
        display:block;
        margin:0 auto 6px;
    }
    .ipmas-print-header h2 {
        margin:0;
        font-size:19px;
        font-weight:900;
        color:#c90068!important;
    }
    .ipmas-print-header p {
        margin:3px 0;
        font-size:12px;
        color:#333!important;
    }
    .ipmas-print-header .print-date {
        color:#555!important;
    }
    table {
        width:100%!important;
        border-collapse:collapse!important;
    }
    th, td {
        border:1px solid #ddd!important;
        padding:7px!important;
        color:#111!important;
    }
    a {
        color:#111!important;
        text-decoration:none!important;
    }
}

/* =========================================================
   COHEMA MOBILE UX UPGRADE - PUBLIC PAGE + GLOBAL NO DATA
   ========================================================= */
.mobile-bottom-nav{
    display:none;
}

.announcement-detail-modal{
    position:fixed;
    inset:0;
    z-index:3000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:22px;
    background:rgba(0,0,0,.58);
    backdrop-filter:blur(8px);
}
.announcement-detail-modal.active{
    display:flex;
}
.announcement-detail-box{
    width:min(760px,96vw);
    max-height:90vh;
    overflow:auto;
    background:#fff;
    border-radius:22px;
    box-shadow:0 30px 90px rgba(0,0,0,.35);
    position:relative;
    animation:ipmasPop .22s ease;
}
@keyframes ipmasPop{
    from{
        opacity:0;
        transform:translateY(14px) scale(.97)
    }
    to{
        opacity:1;
        transform:translateY(0) scale(1)
    }
}
.announcement-detail-close{
    position:absolute;
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:#fff;
    color:#222;
    box-shadow:0 8px 24px rgba(0,0,0,.18);
    z-index:2;
}
.announcement-detail-box img{
    width:100%;
    height:310px;
    object-fit:cover;
    display:block;
}
.announcement-detail-content{
    padding:26px 30px 32px;
}
.announcement-detail-date{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:8px 14px;
    background:#fff0f6;
    color:var(--magenta);
    font-weight:900;
    margin-bottom:12px;
}
.announcement-detail-content h2{
    font-size:30px;
    font-weight:900;
    line-height:1.14;
    margin:0 0 12px;
}
.announcement-detail-content p{
    color:#475467;
    font-size:16px;
    line-height:1.8;
    margin:0;
}

.ipmas-empty-state,
.dataTables_empty .no-data,
.no-data{
    text-align:center!important;
    padding:26px 16px!important;
    color:#667085!important;
}
.ipmas-empty-state img,
.dataTables_empty .no-data img,
.no-data img{
    width:120px!important;
    max-width:45vw!important;
    display:block!important;
    margin:0 auto 12px!important;
}
.ipmas-empty-state b{
    display:block;
    color:#202533;
    font-size:15px;
    margin-bottom:4px;
}
.ipmas-empty-state small{
    display:block;
    color:#667085;
}

.session-modal{
    border:0;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 26px 80px rgba(0,0,0,.25);
}
.session-clock{
    width:92px;
    height:92px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin:5px auto 15px;
    background:linear-gradient(135deg,var(--magenta),var(--magenta2));
    color:#fff;
    font-size:32px;
    font-weight:900;
    box-shadow:0 16px 36px rgba(201,0,104,.28);
}

@media(max-width:900px){
    body.public-index-page{
        padding-bottom:76px;
        overflow-x:hidden;
    }
    .public-hero-header{
        position:fixed;
        height:76px!important;
        padding:8px 14px!important;
        flex-direction:row!important;
        align-items:center!important;
        justify-content:space-between!important;
        background:rgba(0,0,0,.74)!important;
        backdrop-filter:blur(18px);
    }
    .public-brand img{
        width:54px!important;
        height:54px!important;
    }
    .public-brand strong{
        font-size:26px!important;
        line-height:.95!important;
    }
    .public-brand span{
        font-size:10px!important;
        line-height:1.18!important;
    }
    .public-nav-links{
        display:none!important;
    }
    .mobile-bottom-nav{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        height:68px;
        z-index:2200;
        display:grid;
        grid-template-columns:repeat(5,1fr);
        background:rgba(255,255,255,.96);
        border-top:1px solid #e8eaf0;
        box-shadow:0 -8px 26px rgba(15,23,42,.13);
        backdrop-filter:blur(14px);
        padding:5px 4px calc(5px + env(safe-area-inset-bottom));
    }
    .mobile-bottom-nav a,
    .mobile-bottom-nav button{
        border:0;
        background:transparent;
        color:#667085;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:3px;
        font-size:10px;
        font-weight:800;
        text-decoration:none;
        border-radius:14px;
    }
    .mobile-bottom-nav i{
        font-size:19px;
    }
    .mobile-bottom-nav .active,
    .mobile-bottom-nav a:hover,
    .mobile-bottom-nav button:hover{
        color:var(--magenta);
        background:#fff0f6;
    }
    .public-hero-slider{
        min-height:100svh;
        padding:105px 16px 96px!important;
        background-position:center!important;
    }
    .hero-center-content{
        max-width:100%;
    }
    .hero-badge{
        font-size:11px!important;
        padding:10px 13px!important;
        margin-bottom:16px!important;
        max-width:100%;
        line-height:1.35;
    }
    .hero-center-content h1{
        font-size:30px!important;
        line-height:1.15!important;
        margin-bottom:14px!important;
    }
    .hero-center-content p{
        font-size:13px!important;
        line-height:1.65!important;
        margin-bottom:18px!important;
    }
    .hero-search-public{
        height:52px!important;
        border-radius:18px!important;
        padding:0 15px!important;
        margin-bottom:16px!important;
    }
    .hero-search-public input{
        font-size:13px!important;
        min-width:0;
    }
    .hero-action-row{
        gap:10px!important;
    }
    .hero-primary-btn,.hero-secondary-btn{
        width:100%;
        border-radius:14px!important;
        padding:14px 16px!important;
        font-size:13px!important;
    }
    .security-note{
        margin-top:16px!important;
        font-size:12px!important;
    }
    .hero-dots{
        margin-top:18px!important;
    }
    .public-about-section{
        padding:48px 16px!important;
    }
    .public-section-grid{
        display:block!important;
    }
    .about-left-copy h2{
        font-size:28px!important;
    }
    .about-left-copy p{
        font-size:14px!important;
        line-height:1.75!important;
    }
    .learn-btn{
        width:100%;
        justify-content:center;
        margin-bottom:22px;
    }
    .about-feature-grid{
        grid-template-columns:repeat(2, minmax(0,1fr))!important;
        gap:12px!important;
    }
    .feature-tile{
        padding:18px 12px!important;
        min-height:180px;
    }
    .feature-tile i{
        width:48px!important;
        height:48px!important;
        font-size:21px!important;
        margin-bottom:10px!important;
    }
    .feature-tile h3{
        font-size:13px!important;
    }
    .feature-tile p{
        font-size:11.5px!important;
    }
    .public-announcements-section{
        padding:44px 16px 60px!important;
    }
    .announcements-head{
        display:block!important;
    }
    .announce-controls{
        margin-top:14px;
        justify-content:space-between;
    }
    .announce-controls .view-all-btn{
        flex:1;
    }
    .announcement-carousel{
        display:flex!important;
        gap:14px!important;
        overflow-x:auto!important;
        scroll-snap-type:x mandatory;
        padding-bottom:16px!important;
    }
    .announcement-card{
        min-width:82vw!important;
        max-width:82vw!important;
        border-radius:16px!important;
        scroll-snap-align:start;
    }
    .announcement-card img{
        height:150px!important;
    }
    .public-footer{
        padding-bottom:68px;
    }
    .footer-grid{
        grid-template-columns:1fr!important;
        gap:24px!important;
        padding:34px 18px!important;
    }
    .public-module-modal{
        align-items:flex-end!important;
        padding:0!important;
    }
    .public-module-box{
        width:100%!important;
        max-height:86vh!important;
        border-radius:24px 24px 0 0!important;
        padding:20px 14px 24px!important;
    }
    .public-module-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:10px!important;
    }
    .public-module-card{
        padding:16px 10px!important;
        border-radius:16px!important;
    }
    .public-module-card i{
        width:48px!important;
        height:48px!important;
        font-size:20px!important;
    }
    .public-module-card h3{
        font-size:12.5px!important;
    }
    .public-module-card p{
        font-size:10.8px!important;
    }
    .announcement-detail-modal{
        align-items:flex-end;
        padding:0;
    }
    .announcement-detail-box{
        width:100%;
        max-height:88vh;
        border-radius:24px 24px 0 0;
    }
    .announcement-detail-box img{
        height:210px;
    }
    .announcement-detail-content{
        padding:22px 18px 28px;
    }
    .announcement-detail-content h2{
        font-size:24px;
    }
}

@media(max-width:420px){
    .hero-center-content h1{
        font-size:26px!important;
    }
    .about-feature-grid,.public-module-grid{
        grid-template-columns:1fr!important;
    }
    .announcement-card{
        min-width:88vw!important;
        max-width:88vw!important;
    }
}


/* =========================================================
   SIDEBAR CLEANUP V6 - logout standalone, no roadmap module
   ========================================================= */
.sidebar-section-title{
    margin:16px 8px 8px;
    padding:9px 10px 5px;
    color:#9b124f;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.7px;
    border-top:1px solid rgba(201,0,104,.12);
}
.system-tool-link .side-icon{
    background:#fff;
    border-color:#e7f7ed;
    color:#12833b;
}
.system-tool-link:hover .side-icon,
.system-tool-link.active .side-icon{
    background:#f0fff5;
    color:#12833b;
}
.sidebar-logout-zone{
    margin:18px 6px 8px;
    padding-top:14px;
    border-top:1px solid rgba(220,38,38,.18);
}
.sidebar-logout-link{
    background:#fff1f2!important;
    border:1px solid rgba(220,38,38,.18)!important;
    color:#dc2626!important;
    font-weight:900!important;
}
.sidebar-logout-link .side-icon{
    background:#ffffff!important;
    border-color:rgba(220,38,38,.22)!important;
    color:#dc2626!important;
}
.sidebar-logout-link small,
.sidebar-logout-link span{
    color:#dc2626!important;
}
.sidebar-logout-link:hover{
    box-shadow:0 10px 28px rgba(220,38,38,.14)!important;
    transform:translateY(-1px);
}
.app-shell.collapsed .sidebar-section-title,
.app-shell.collapsed .sidebar-logout-link span,
.app-shell.collapsed .sidebar-logout-link small{
    display:none!important;
}
@media(max-width:1100px){
    .ipmas-sidebar{
        width:min(88vw,360px)!important;
        top:0!important;
        bottom:0!important;
        border-radius:0 22px 22px 0;
        box-shadow:22px 0 60px rgba(15,23,42,.22);
    }
    .sidebar-menu{
        padding-bottom:120px!important;
    }
    .side-link{
        padding:12px 11px!important;
        margin-bottom:8px!important;
    }
    .side-icon{
        min-width:42px!important;
        width:42px!important;
        height:42px!important;
        border-radius:14px!important;
    }
    .module-submenu{
        margin-left:22px!important;
        padding-left:12px!important;
    }
    .module-submenu a{
        padding:11px 10px!important;
        font-size:13px!important;
        background:rgba(255,255,255,.65);
        margin-bottom:5px;
    }
    .sidebar-logout-zone{
        position:sticky;
        bottom:0;
        background:linear-gradient(180deg,rgba(255,247,251,.85),#fff7fb 45%,#fff);
        padding:14px 6px 16px;
        z-index:5;
    }
}


/* =========================================================
   INTERNAL MOBILE VIEW FIX V7 - after login
   Drawer sidebar + compact topbar + YouTube-like bottom nav
   ========================================================= */
.internal-mobile-bottom-nav{
    display:none;
}

@media(max-width:900px){
    body.ipmas-body:not(.public-index-page){
        overflow-x:hidden!important;
        background:#f4f5f6!important;
        padding-bottom:76px!important;
    }

    body.ipmas-body:not(.public-index-page) .app-shell,
    body.ipmas-body:not(.public-index-page) .app-shell.collapsed{
        padding-left:0!important;
        padding-top:70px!important;
        padding-bottom:78px!important;
        width:100%!important;
        overflow-x:hidden!important;
    }

    body.ipmas-body:not(.public-index-page) .app-topbar{
        height:70px!important;
        min-height:70px!important;
        position:fixed!important;
        top:0!important;
        left:0!important;
        right:0!important;
        z-index:2100!important;
        display:flex!important;
        flex-wrap:nowrap!important;
        align-items:center!important;
        gap:8px!important;
        padding:8px 10px!important;
        background:#ffffff!important;
        box-shadow:0 8px 24px rgba(15,23,42,.08)!important;
    }

    body.ipmas-body:not(.public-index-page) .hamburger{
        min-width:42px!important;
        width:42px!important;
        height:42px!important;
        border-radius:14px!important;
        padding:0!important;
        display:inline-flex!important;
        align-items:center!important;
        justify-content:center!important;
        color:var(--magenta)!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-title{
        min-width:0!important;
        flex:1 1 auto!important;
        overflow:hidden!important;
        gap:8px!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-title img{
        width:38px!important;
        height:38px!important;
        flex:0 0 38px!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-title strong{
        font-size:15px!important;
        display:block!important;
        white-space:nowrap!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
        max-width:150px!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-title span{
        display:none!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-actions{
        flex:0 0 auto!important;
        gap:6px!important;
        max-width:46vw!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-actions .sms-chip,
    body.ipmas-body:not(.public-index-page) .topbar-actions .top-icon{
        display:none!important;
    }

    body.ipmas-body:not(.public-index-page) .top-user{
        max-width:132px!important;
        min-width:0!important;
        overflow:hidden!important;
        white-space:nowrap!important;
        text-overflow:ellipsis!important;
        padding:10px 12px!important;
        border-radius:14px!important;
        font-size:12px!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-search{
        display:none!important;
        position:fixed!important;
        top:76px!important;
        left:12px!important;
        right:12px!important;
        z-index:2300!important;
        max-width:none!important;
        width:auto!important;
        height:54px!important;
        padding:0 14px!important;
        background:#ffffff!important;
        border:1px solid #e7e8ec!important;
        border-radius:18px!important;
        box-shadow:0 18px 45px rgba(15,23,42,.18)!important;
    }

    body.mobile-search-open .topbar-search{
        display:flex!important;
    }

    body.ipmas-body:not(.public-index-page) .topbar-search input{
        width:100%!important;
        min-width:0!important;
        font-size:14px!important;
    }

    body.ipmas-body:not(.public-index-page) .global-search-results{
        position:fixed!important;
        top:136px!important;
        left:12px!important;
        right:12px!important;
        width:auto!important;
        max-height:55vh!important;
        overflow:auto!important;
        border-radius:18px!important;
        box-shadow:0 18px 50px rgba(15,23,42,.22)!important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar{
        top:0!important;
        left:0!important;
        bottom:0!important;
        width:min(86vw,340px)!important;
        max-width:340px!important;
        height:100dvh!important;
        transform:translateX(-110%)!important;
        z-index:2600!important;
        border-radius:0 22px 22px 0!important;
        overflow-y:auto!important;
        -webkit-overflow-scrolling:touch!important;
        box-shadow:24px 0 70px rgba(15,23,42,.24)!important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open{
        transform:translateX(0)!important;
    }

    body.ipmas-body:not(.public-index-page) .mobile-sidebar-backdrop.show{
        display:block!important;
        position:fixed!important;
        inset:0!important;
        background:rgba(15,23,42,.48)!important;
        z-index:2500!important;
        backdrop-filter:blur(3px)!important;
    }

    body.ipmas-body:not(.public-index-page) .sidebar-header{
        position:sticky!important;
        top:0!important;
        z-index:8!important;
        background:#ffffff!important;
    }

    body.ipmas-body:not(.public-index-page) .sidebar-menu{
        padding:10px 10px 130px!important;
    }

    body.ipmas-body:not(.public-index-page) .side-link{
        min-height:54px!important;
        padding:11px 10px!important;
        margin-bottom:8px!important;
        border-radius:16px!important;
    }

    body.ipmas-body:not(.public-index-page) .side-link-main{
        min-width:0!important;
    }

    body.ipmas-body:not(.public-index-page) .side-link-main span{
        font-size:13px!important;
        white-space:normal!important;
        line-height:1.25!important;
    }

    body.ipmas-body:not(.public-index-page) .side-link-main small{
        font-size:10.5px!important;
    }

    body.ipmas-body:not(.public-index-page) .side-icon{
        width:42px!important;
        height:42px!important;
        min-width:42px!important;
        border-radius:14px!important;
    }

    body.ipmas-body:not(.public-index-page) .module-submenu{
        margin-left:14px!important;
        padding-left:12px!important;
        max-height:0!important;
        overflow:hidden!important;
    }

    body.ipmas-body:not(.public-index-page) .module-submenu.open{
        max-height:900px!important;
        padding-top:6px!important;
        padding-bottom:8px!important;
    }

    body.ipmas-body:not(.public-index-page) .module-submenu a{
        min-height:44px!important;
        display:flex!important;
        align-items:center!important;
        gap:8px!important;
        padding:10px 10px!important;
        margin-bottom:6px!important;
        font-size:12.5px!important;
        line-height:1.25!important;
        background:rgba(255,255,255,.82)!important;
        border:1px solid rgba(231,232,236,.85)!important;
        border-radius:14px!important;
    }

    body.ipmas-body:not(.public-index-page) .module-submenu a .submenu-icon{
        width:28px!important;
        height:28px!important;
        min-width:28px!important;
        border-radius:10px!important;
    }

    body.ipmas-body:not(.public-index-page) .sidebar-logout-zone{
        position:sticky!important;
        bottom:0!important;
        z-index:10!important;
        background:linear-gradient(180deg,rgba(255,248,251,.55),#fff 40%,#fff)!important;
        padding:14px 6px 18px!important;
        margin:12px 0 0!important;
    }

    body.ipmas-body:not(.public-index-page) .page-content{
        margin-left:0!important;
        width:100%!important;
        max-width:100%!important;
        padding:14px!important;
        min-height:calc(100vh - 70px)!important;
        overflow-x:hidden!important;
    }

    body.ipmas-body:not(.public-index-page) .module-header{
        padding:18px!important;
        border-radius:18px!important;
        margin-bottom:14px!important;
    }

    body.ipmas-body:not(.public-index-page) .module-header h2{
        font-size:22px!important;
        line-height:1.18!important;
    }

    body.ipmas-body:not(.public-index-page) .module-header p{
        font-size:12.5px!important;
        line-height:1.55!important;
    }

    body.ipmas-body:not(.public-index-page) .row.g-3,
    body.ipmas-body:not(.public-index-page) .dashboard-grid,
    body.ipmas-body:not(.public-index-page) .settings-grid,
    body.ipmas-body:not(.public-index-page) .profile-grid,
    body.ipmas-body:not(.public-index-page) .kpi-grid,
    body.ipmas-body:not(.public-index-page) .kpi-grid.second{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:14px!important;
    }

    body.ipmas-body:not(.public-index-page) .table-card,
    body.ipmas-body:not(.public-index-page) .panel-card,
    body.ipmas-body:not(.public-index-page) .setting-card,
    body.ipmas-body:not(.public-index-page) .profile-card,
    body.ipmas-body:not(.public-index-page) .profile-details-card,
    body.ipmas-body:not(.public-index-page) .activity-card,
    body.ipmas-body:not(.public-index-page) .dashboard-filter-card,
    body.ipmas-body:not(.public-index-page) .kpi-card{
        width:100%!important;
        max-width:100%!important;
        padding:16px!important;
        border-radius:18px!important;
    }

    body.ipmas-body:not(.public-index-page) .filter-controls,
    body.ipmas-body:not(.public-index-page) .profile-actions,
    body.ipmas-body:not(.public-index-page) .btn-row{
        width:100%!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
    }

    body.ipmas-body:not(.public-index-page) .filter-controls select,
    body.ipmas-body:not(.public-index-page) .filter-controls input,
    body.ipmas-body:not(.public-index-page) .filter-controls button,
    body.ipmas-body:not(.public-index-page) .btn,
    body.ipmas-body:not(.public-index-page) .btn-industrial,
    body.ipmas-body:not(.public-index-page) .btn-ipmas,
    body.ipmas-body:not(.public-index-page) .btn-profile{
        width:100%!important;
        justify-content:center!important;
        text-align:center!important;
    }

    body.ipmas-body:not(.public-index-page) .table-responsive,
    body.ipmas-body:not(.public-index-page) .dataTables_wrapper{
        width:100%!important;
        overflow-x:auto!important;
        -webkit-overflow-scrolling:touch!important;
    }

    body.ipmas-body:not(.public-index-page) table{
        min-width: max-content !important;
    }

    body.ipmas-body:not(.public-index-page) .dataTables_filter,
    body.ipmas-body:not(.public-index-page) .dataTables_length,
    body.ipmas-body:not(.public-index-page) .dt-buttons{
        width:100%!important;
        text-align:left!important;
        margin-bottom:10px!important;
    }

    body.ipmas-body:not(.public-index-page) .dataTables_filter input{
        width:100%!important;
        margin:6px 0 0!important;
    }

    body.ipmas-body:not(.public-index-page) .chart-box,
    body.ipmas-body:not(.public-index-page) .chart-box.small,
    body.ipmas-body:not(.public-index-page) .chart-wrap,
    body.ipmas-body:not(.public-index-page) .chart-wrap.small{
        height:280px!important;
    }

    body.ipmas-body:not(.public-index-page) .production-flow,
    body.ipmas-body:not(.public-index-page) .batch-status-strip,
    body.ipmas-body:not(.public-index-page) .health-summary{
        grid-template-columns:1fr!important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-footer{
        display:none!important;
    }

    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav{
        position:fixed!important;
        left:0!important;
        right:0!important;
        bottom:0!important;
        height:68px!important;
        z-index:2400!important;
        display:grid!important;
        grid-template-columns:repeat(5,1fr)!important;
        background:rgba(255,255,255,.97)!important;
        border-top:1px solid #e6e8ec!important;
        box-shadow:0 -10px 30px rgba(15,23,42,.12)!important;
        backdrop-filter:blur(14px)!important;
        padding:5px 4px calc(5px + env(safe-area-inset-bottom))!important;
    }

    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav a,
    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav button{
        border:0!important;
        background:transparent!important;
        color:#667085!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:center!important;
        gap:3px!important;
        font-size:10px!important;
        font-weight:900!important;
        text-decoration:none!important;
        border-radius:14px!important;
        padding:4px!important;
    }

    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav i{
        font-size:19px!important;
    }

    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav a.active,
    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav button.active,
    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav a:hover,
    body.ipmas-body:not(.public-index-page) .internal-mobile-bottom-nav button:hover{
        color:var(--magenta)!important;
        background:#fff0f6!important;
    }
}

@media(max-width:420px){
    body.ipmas-body:not(.public-index-page) .topbar-title strong{
        max-width:98px!important;
    }
    body.ipmas-body:not(.public-index-page) .top-user{
        max-width:95px!important;
    }
    body.ipmas-body:not(.public-index-page) .kpi-card h3{
        font-size:23px!important;
    }
}

/* =========================================================
   TABLE DISPLAY FIX - keep existing table classes
   No HTML class changes required
   ========================================================= */

.table-card {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    position: relative !important;
}

/* DataTables wrapper ibebe horizontal scroll ndani ya card */
.table-card .dataTables_wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 12px !important;
}

/* DataTables top controls zisivuke nje ya card */
.table-card .dataTables_wrapper > .row,
.table-card .dataTables_wrapper .dt-buttons,
.table-card .dataTables_wrapper .dataTables_filter,
.table-card .dataTables_wrapper .dataTables_length,
.table-card .dataTables_wrapper .dataTables_info,
.table-card .dataTables_wrapper .dataTables_paginate {
    max-width: 100% !important;
}

/* Table ibaki professional, isivunje page */
.table-card table.ipmas-datatable {
    width: 100% !important;
    min-width: 1250px !important;
    margin: 0 !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    font-size: 13px !important;
}

/* Header */
.table-card table.ipmas-datatable thead th {
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    padding: 12px 14px !important;
    white-space: nowrap !important;
    border-bottom: 1px solid #e5e7eb !important;
    vertical-align: middle !important;
}

/* Body cells */
.table-card table.ipmas-datatable tbody td {
    padding: 13px 14px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #e5e7eb !important;
    white-space: nowrap !important;
    line-height: 1.45 !important;
    font-size: 13px !important;
    color: #0f172a !important;
}

/* Row color */
.table-card table.ipmas-datatable tbody tr:nth-child(even) {
    background: #f8fafc !important;
}

.table-card table.ipmas-datatable tbody tr:hover {
    background: #fff1f8 !important;
}

/* Bold supplier name */
.table-card table.ipmas-datatable td b {
    font-weight: 900 !important;
    color: #0f172a !important;
}

/* Column sizing - supplier table */
.table-card table.ipmas-datatable th:nth-child(1),
.table-card table.ipmas-datatable td:nth-child(1) {
    width: 48px !important;
    min-width: 48px !important;
    text-align: center !important;
}

.table-card table.ipmas-datatable th:nth-child(2),
.table-card table.ipmas-datatable td:nth-child(2) {
    min-width: 230px !important;
}

.table-card table.ipmas-datatable th:nth-child(3),
.table-card table.ipmas-datatable td:nth-child(3) {
    min-width: 165px !important;
}

.table-card table.ipmas-datatable th:nth-child(4),
.table-card table.ipmas-datatable td:nth-child(4) {
    min-width: 135px !important;
}

.table-card table.ipmas-datatable th:nth-child(5),
.table-card table.ipmas-datatable td:nth-child(5) {
    min-width: 230px !important;
}

.table-card table.ipmas-datatable th:nth-child(6),
.table-card table.ipmas-datatable td:nth-child(6) {
    min-width: 110px !important;
}

.table-card table.ipmas-datatable th:nth-child(7),
.table-card table.ipmas-datatable td:nth-child(7) {
    min-width: 310px !important;
}

.table-card table.ipmas-datatable th:nth-child(8),
.table-card table.ipmas-datatable td:nth-child(8) {
    min-width: 150px !important;
}

.table-card table.ipmas-datatable th:nth-child(9),
.table-card table.ipmas-datatable td:nth-child(9) {
    min-width: 160px !important;
}

.table-card table.ipmas-datatable th:nth-child(10),
.table-card table.ipmas-datatable td:nth-child(10) {
    min-width: 90px !important;
}

.table-card table.ipmas-datatable th:nth-child(11),
.table-card table.ipmas-datatable td:nth-child(11) {
    min-width: 110px !important;
    text-align: center !important;
}

.table-card table.ipmas-datatable th:nth-child(12),
.table-card table.ipmas-datatable td:nth-child(12) {
    min-width: 185px !important;
}

.table-card table.ipmas-datatable th:last-child,
.table-card table.ipmas-datatable td:last-child {
    min-width: 110px !important;
    text-align: center !important;
}

/* Status badges */
.supplier-status-active,
.supplier-status-inactive {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 78px !important;
    height: 28px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

.supplier-status-active {
    background: #dcfce7 !important;
    color: #166534 !important;
}

.supplier-status-inactive {
    background: #fee2e2 !important;
    color: #991b1b !important;
}

/* Action buttons zibaki vizuri */
.table-card .supplier-table-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 7px !important;
    align-items: center !important;
    justify-content: center !important;
}

.table-card .supplier-table-actions a {
    min-width: 76px !important;
    justify-content: center !important;
    border-radius: 999px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}

/* DataTables controls */
.table-card .dataTables_filter,
.table-card .dataTables_length,
.table-card .dt-buttons {
    margin-bottom: 12px !important;
}

.table-card .dataTables_filter {
    float: none !important;
    text-align: right !important;
}

.table-card .dataTables_filter input,
.table-card .dataTables_length select {
    border: 1px solid #dbe3ef !important;
    border-radius: 12px !important;
    padding: 8px 10px !important;
    outline: none !important;
}

.table-card .dataTables_filter input {
    width: 260px !important;
    max-width: 100% !important;
}

.table-card .dataTables_filter input:focus {
    border-color: var(--magenta) !important;
    box-shadow: 0 0 0 4px rgba(201,0,104,0.08) !important;
}

/* DataTables buttons */
.table-card .dt-buttons .btn,
.table-card .dt-buttons button {
    width: auto !important;
    border-radius: 10px !important;
    padding: 7px 12px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}

/* Tablet and mobile */
@media(max-width: 900px) {
    .table-card {
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px !important;
        overflow: hidden !important;
        border-radius: 18px !important;
    }

    .table-card .dataTables_wrapper {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .table-card table.ipmas-datatable {
        width: max-content !important;
        min-width: 1250px !important;
        max-width: none !important;
        font-size: 12.5px !important;
    }

    .table-card table.ipmas-datatable thead th {
        padding: 10px 10px !important;
        font-size: 11px !important;
    }

    .table-card table.ipmas-datatable tbody td {
        padding: 11px 10px !important;
        font-size: 12px !important;
    }

    .table-card .dataTables_filter,
    .table-card .dataTables_length,
    .table-card .dt-buttons,
    .table-card .dataTables_info,
    .table-card .dataTables_paginate {
        width: 100% !important;
        text-align: left !important;
        margin-bottom: 10px !important;
        float: none !important;
    }

    .table-card .dataTables_filter input {
        width: 100% !important;
        max-width: 100% !important;
        margin: 6px 0 0 !important;
    }

    .table-card .dt-buttons {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
    }

    .table-card .dt-buttons .btn,
    .table-card .dt-buttons button {
        width: auto !important;
        flex: 0 0 auto !important;
    }
}

@media(max-width: 480px) {
    .table-card {
        padding: 10px !important;
        border-radius: 16px !important;
    }

    .table-card table.ipmas-datatable {
        min-width: 1200px !important;
    }

    .table-card table.ipmas-datatable thead th {
        font-size: 10.5px !important;
    }

    .table-card table.ipmas-datatable tbody td {
        font-size: 11.5px !important;
    }
}

/* Print table */
@media print {
    .table-card {
        overflow: visible !important;
    }

    .table-card .dataTables_wrapper {
        overflow: visible !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .table-card table.ipmas-datatable {
        width: 100% !important;
        min-width: 0 !important;
        border-collapse: collapse !important;
        font-size: 10px !important;
    }

    .table-card table.ipmas-datatable th,
    .table-card table.ipmas-datatable td {
        white-space: normal !important;
        padding: 6px !important;
        border: 1px solid #ddd !important;
        font-size: 9px !important;
    }

    .table-card .supplier-table-actions {
        display: none !important;
    }
}

/* =========================================================
   DATATABLE PAGE INFO + PAGINATION FIX
   ========================================================= */

.table-card .ipmas-dt-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-bottom: 14px !important;
}

.table-card .ipmas-dt-left,
.table-card .ipmas-dt-buttons,
.table-card .ipmas-dt-right {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.table-card .ipmas-dt-right {
    margin-left: auto !important;
}

.table-card .ipmas-dt-bottom {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-top: 14px !important;
    padding-top: 12px !important;
    border-top: 1px solid #e5e7eb !important;
}

.table-card .ipmas-dt-info,
.table-card .dataTables_info {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #475569 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.table-card .ipmas-dt-pages,
.table-card .dataTables_paginate {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.table-card .dataTables_paginate .paginate_button {
    border: 1px solid #e5e7eb !important;
    background: #ffffff !important;
    color: #0f172a !important;
    border-radius: 10px !important;
    padding: 7px 11px !important;
    margin: 0 2px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    cursor: pointer !important;
}

.table-card .dataTables_paginate .paginate_button.current {
    background: linear-gradient(135deg, var(--magenta), var(--magenta2)) !important;
    color: #ffffff !important;
    border-color: var(--magenta) !important;
}

.table-card .dataTables_paginate .paginate_button.disabled {
    opacity: .45 !important;
    cursor: not-allowed !important;
}

.table-card .dataTables_length label,
.table-card .dataTables_filter label {
    font-size: 13px !important;
    font-weight: 800 !important;
    color: #0f172a !important;
}

.table-card .dataTables_length select {
    width: auto !important;
    min-width: 76px !important;
}

.table-card .dataTables_filter input {
    width: 260px !important;
    max-width: 100% !important;
}

/* Mobile */
@media(max-width: 900px) {
    .table-card .ipmas-dt-top,
    .table-card .ipmas-dt-bottom {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .table-card .ipmas-dt-left,
    .table-card .ipmas-dt-buttons,
    .table-card .ipmas-dt-right,
    .table-card .ipmas-dt-info,
    .table-card .ipmas-dt-pages {
        width: 100% !important;
        justify-content: flex-start !important;
    }

    .table-card .dataTables_filter input {
        width: 100% !important;
        margin-top: 6px !important;
    }

    .table-card .dataTables_paginate {
        overflow-x: auto !important;
        white-space: nowrap !important;
        padding-bottom: 6px !important;
    }
}

/* =========================================================
   IPMAS REAL MOBILE TABLE CARDS
   Desktop/tablet: normal table
   Phone: generated cards from DataTables rows
   ========================================================= */

.ipmas-mobile-card-list {
    display: none;
}

/* Buttons color for all devices */
.table-card .dt-buttons button,
.table-card .dt-buttons .dt-button,
.table-card .dt-buttons .btn {
    border: none !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, #c90068, #ec167f) !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    box-shadow: 0 10px 22px rgba(201,0,104,0.14) !important;
}

.table-card .dt-buttons button:hover,
.table-card .dt-buttons .dt-button:hover,
.table-card .dt-buttons .btn:hover {
    filter: brightness(.96) !important;
    color: #ffffff !important;
}

.table-card .dataTables_filter input,
.table-card .dataTables_length select {
    border: 1px solid #dbe3ef !important;
    border-radius: 12px !important;
    padding: 8px 10px !important;
    outline: none !important;
    background: #ffffff !important;
}

.table-card .dataTables_filter input:focus {
    border-color: #c90068 !important;
    box-shadow: 0 0 0 4px rgba(201,0,104,0.08) !important;
}

/* Large screen DataTable controls */
.table-card .ipmas-dt-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-bottom: 14px !important;
}

.table-card .ipmas-dt-left,
.table-card .ipmas-dt-buttons,
.table-card .ipmas-dt-right {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.table-card .ipmas-dt-right {
    margin-left: auto !important;
}

.table-card .ipmas-dt-bottom {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-top: 14px !important;
    padding-top: 12px !important;
    border-top: 1px solid #e5e7eb !important;
}

.table-card .dataTables_info {
    color: #475569 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.table-card .dataTables_paginate .paginate_button {
    border: 1px solid #e5e7eb !important;
    background: #ffffff !important;
    color: #0f172a !important;
    border-radius: 10px !important;
    padding: 7px 11px !important;
    margin: 0 2px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

.table-card .dataTables_paginate .paginate_button.current {
    background: linear-gradient(135deg, #c90068, #ec167f) !important;
    color: #ffffff !important;
    border-color: #c90068 !important;
}

/* Phone screen */
@media (max-width: 768px) {

    body.ipmas-body:not(.public-index-page) .table-card {
        padding: 14px !important;
        border-radius: 18px !important;
        overflow: visible !important;
        margin-bottom: 88px !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_wrapper {
        overflow: visible !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-top,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-bottom {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-left,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-buttons,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-right,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-info,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-pages {
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        margin: 0 !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_length,
    body.ipmas-body:not(.public-index-page) .table-card .dataTables_filter {
        width: 100% !important;
        text-align: left !important;
        margin: 0 !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_length label,
    body.ipmas-body:not(.public-index-page) .table-card .dataTables_filter label {
        width: 100% !important;
        font-size: 13px !important;
        font-weight: 900 !important;
        color: #0f172a !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_length select {
        width: 82px !important;
        height: 40px !important;
        border-radius: 12px !important;
        margin: 0 5px !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_filter input {
        width: 100% !important;
        max-width: 100% !important;
        height: 42px !important;
        margin: 7px 0 0 !important;
        border-radius: 14px !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dt-buttons,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-buttons {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dt-buttons button,
    body.ipmas-body:not(.public-index-page) .table-card .dt-buttons .dt-button,
    body.ipmas-body:not(.public-index-page) .table-card .dt-buttons .btn {
        width: 100% !important;
        min-width: 0 !important;
        height: 40px !important;
        padding: 8px 6px !important;
        font-size: 11.5px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        white-space: nowrap !important;
    }

    /* Hide real table only on phone */
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable {
        display: none !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .ipmas-mobile-card-list {
        display: block !important;
        width: 100% !important;
        margin-top: 12px !important;
    }

    .ipmas-mobile-data-card {
        background: #ffffff;
        border: 1px solid #e5e7eb;
        border-radius: 18px;
        padding: 14px;
        margin-bottom: 14px;
        box-shadow: 0 14px 34px rgba(15,23,42,0.08);
    }

    .ipmas-mobile-data-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        padding-bottom: 12px;
        margin-bottom: 6px;
        border-bottom: 1px solid #eef2f7;
    }

    .ipmas-mobile-data-card-head b {
        display: block;
        font-size: 15px;
        font-weight: 900;
        color: #0f172a;
        line-height: 1.25;
    }

    .ipmas-mobile-data-card-head small {
        display: block;
        margin-top: 3px;
        color: #64748b;
        font-size: 11.5px;
        font-weight: 700;
    }

    .ipmas-mobile-data-card-head span {
        min-width: 34px;
        height: 34px;
        border-radius: 12px;
        background: linear-gradient(135deg, #c90068, #ec167f);
        color: #ffffff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        font-weight: 900;
    }

    .ipmas-mobile-data-card-body {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ipmas-mobile-data-item {
        display: grid;
        grid-template-columns: 112px 1fr;
        gap: 10px;
        align-items: start;
        padding: 9px 0;
        border-bottom: 1px dashed #e5e7eb;
    }

    .ipmas-mobile-data-item:last-child {
        border-bottom: none;
    }

    .ipmas-mobile-data-item > span {
        color: #64748b;
        font-size: 11px;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: .02em;
    }

    .ipmas-mobile-data-item > div {
        color: #0f172a;
        font-size: 12.5px;
        font-weight: 650;
        line-height: 1.45;
        word-break: break-word;
    }

    .ipmas-mobile-data-item > div b {
        font-weight: 900;
    }

    .ipmas-mobile-data-item.mobile-action-item {
        display: block;
        padding-top: 12px;
    }

    .ipmas-mobile-data-item.mobile-action-item > span {
        display: block;
        margin-bottom: 8px;
    }

    .ipmas-mobile-data-card .supplier-table-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .ipmas-mobile-data-card .supplier-table-actions a {
        width: 100% !important;
        min-height: 38px !important;
        border-radius: 12px !important;
        justify-content: center !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_info {
        display: block !important;
        width: 100% !important;
        font-size: 12px !important;
        line-height: 1.5 !important;
        white-space: normal !important;
        margin-top: 6px !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_paginate {
        width: 100% !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        display: flex !important;
        justify-content: flex-start !important;
        gap: 5px !important;
        padding: 6px 0 4px !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_paginate .paginate_button {
        flex: 0 0 auto !important;
        padding: 7px 10px !important;
        font-size: 11px !important;
    }
}

@media (max-width: 420px) {

    body.ipmas-body:not(.public-index-page) .table-card .dt-buttons,
    body.ipmas-body:not(.public-index-page) .table-card .ipmas-dt-buttons {
        grid-template-columns: 1fr !important;
    }

    .ipmas-mobile-data-item {
        grid-template-columns: 96px 1fr;
        gap: 8px;
    }

    .ipmas-mobile-data-item > span {
        font-size: 10.5px;
    }

    .ipmas-mobile-data-item > div {
        font-size: 12px;
    }

    .ipmas-mobile-data-card .supplier-table-actions {
        grid-template-columns: 1fr !important;
    }
}
/* =========================================================
   FINAL FIX: DESKTOP TABLE NO SCROLL + MOBILE SIDEBAR TEXT
   Put this at the VERY END of ipmas-industrial.css
   ========================================================= */

/* Desktop / large screens: table should fit inside card */
@media (min-width: 901px) {
    body.ipmas-body:not(.public-index-page) .table-card {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card .dataTables_wrapper {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        font-size: 11px !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th,
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td {
        white-space: normal !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        padding: 9px 7px !important;
        line-height: 1.35 !important;
        vertical-align: top !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable thead th {
        font-size: 10px !important;
        font-weight: 900 !important;
        background: #ffffff !important;
        color: #0f172a !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable tbody td {
        font-size: 10.5px !important;
        color: #0f172a !important;
    }

    /* Supplier table column balancing */
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(1),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(1) {
        width: 34px !important;
        text-align: center !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(2),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(2) {
        width: 13% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(3),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(3) {
        width: 10% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(4),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(4) {
        width: 8% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(5),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(5) {
        width: 12% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(6),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(6) {
        width: 6% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(7),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(7) {
        width: 14% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(8),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(8) {
        width: 8% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(9),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(9) {
        width: 9% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(10),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(10) {
        width: 5% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(11),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(11) {
        width: 7% !important;
        text-align: center !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(12),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(12) {
        width: 9% !important;
    }

    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable th:nth-child(13),
    body.ipmas-body:not(.public-index-page) .table-card table.ipmas-datatable td:nth-child(13) {
        width: 8% !important;
        text-align: center !important;
    }

    .supplier-table-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 6px !important;
        align-items: center !important;
    }

    .supplier-table-actions a {
        width: 72px !important;
        padding: 6px 8px !important;
        font-size: 10.5px !important;
    }

    .supplier-status-active,
    .supplier-status-inactive {
        min-width: 62px !important;
        padding: 5px 7px !important;
        font-size: 9.5px !important;
    }
}

/* Mobile sidebar: always show module names and submenu text */
@media (max-width: 1100px) {
    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open {
        width: min(90vw, 360px) !important;
        transform: translateX(0) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .side-link {
        justify-content: space-between !important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .side-link-main {
        justify-content: flex-start !important;
        width: 100% !important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .side-link span,
    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .side-link small,
    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .side-arrow {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .module-submenu.open {
        display: block !important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .module-submenu a {
        display: flex !important;
        align-items: center !important;
        gap: 9px !important;
        white-space: normal !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    body.ipmas-body:not(.public-index-page) .ipmas-sidebar.mobile-open .module-submenu a .submenu-icon {
        flex: 0 0 26px !important;
    }

    /* Override collapsed state on mobile */
    body.ipmas-body:not(.public-index-page) .app-shell.collapsed .ipmas-sidebar.mobile-open .side-link span,
    body.ipmas-body:not(.public-index-page) .app-shell.collapsed .ipmas-sidebar.mobile-open .side-link small,
    body.ipmas-body:not(.public-index-page) .app-shell.collapsed .ipmas-sidebar.mobile-open .side-arrow {
        display: block !important;
    }

    body.ipmas-body:not(.public-index-page) .app-shell.collapsed .ipmas-sidebar.mobile-open .module-submenu.open {
        display: block !important;
    }
}


.buy-sms-modal {
    position: fixed;
    inset: 0;
    z-index: 5000;
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(8px);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.buy-sms-modal.show {
    display: flex;
}

.buy-sms-card {
    width: min(560px, 100%);
    max-height: 92vh;
    overflow: auto;
    background: #ffffff;
    border-radius: 26px;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .28);
    animation: buySmsPop .22s ease both;
}

@keyframes buySmsPop {
    from {
        opacity: 0;
        transform: translateY(14px) scale(.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.buy-sms-head {
    background: linear-gradient(135deg, var(--magenta), var(--magenta2));
    color: #fff;
    padding: 22px;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}

.buy-sms-head h3 {
    color: #fff;
    margin: 0;
    font-weight: 900;
    font-size: 22px;
}

.buy-sms-head p {
    margin: 6px 0 0;
    color: rgba(255,255,255,.9);
    font-weight: 700;
    font-size: 13px;
}

.buy-sms-close {
    border: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255,255,255,.18);
    color: #fff;
    cursor: pointer;
}

.buy-sms-body {
    padding: 22px;
}

.buy-sms-current {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 16px;
    margin-bottom: 16px;
}

.buy-sms-current small {
    display: block;
    color: #64748b;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 11px;
}

.buy-sms-current strong {
    display: block;
    color: var(--magenta);
    font-weight: 900;
    font-size: 30px;
    line-height: 1.1;
}

.buy-sms-current span {
    display: block;
    margin-top: 5px;
    color: #475569;
    font-weight: 800;
}

.buy-sms-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 16px;
}

.buy-sms-package {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 18px;
    padding: 14px;
    cursor: pointer;
    transition: .18s ease;
}

.buy-sms-package:hover {
    border-color: var(--magenta);
    box-shadow: 0 10px 24px rgba(201,0,104,.09);
}

.buy-sms-package input {
    accent-color: var(--magenta);
}

.buy-sms-package b {
    display: block;
    color: #111827;
    font-weight: 900;
}

.buy-sms-package small {
    display: block;
    color: #64748b;
    font-weight: 700;
    margin-top: 2px;
}

.buy-sms-field {
    margin-bottom: 14px;
}

.buy-sms-field label {
    display: block;
    margin-bottom: 6px;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
}

.buy-sms-field input,
.buy-sms-field textarea {
    width: 100%;
    border: 1px solid #e5e7eb;
    border-radius: 15px;
    padding: 12px 13px;
    outline: none;
    font-weight: 700;
    color: #111827;
    background: #fff;
}

.buy-sms-field input:focus,
.buy-sms-field textarea:focus {
    border-color: var(--magenta);
    box-shadow: 0 0 0 4px rgba(201,0,104,.10);
}

.buy-sms-note {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #166534;
    border-radius: 16px;
    padding: 13px;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 800;
    margin-bottom: 16px;
}

.buy-sms-submit {
    width: 100%;
    height: 52px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--magenta), var(--magenta2));
    color: #fff;
    font-weight: 900;
    box-shadow: 0 16px 34px rgba(201,0,104,.24);
    cursor: pointer;
}

.buy-sms-submit:hover {
    transform: translateY(-1px);
}

@media(max-width: 600px) {
    .buy-sms-modal {
        align-items: flex-end;
        padding: 0;
    }

    .buy-sms-card {
        width: 100%;
        max-height: 90vh;
        border-radius: 24px 24px 0 0;
    }

    .buy-sms-grid {
        grid-template-columns: 1fr;
    }

    .buy-sms-head {
        padding: 20px;
    }

    .buy-sms-body {
        padding: 18px;
    }
}

/* =========================================================
   FORCE COLLAPSED SIDEBAR ICONS TO SCROLL
   Add this at the VERY BOTTOM of the CSS file
   ========================================================= */

@media (min-width: 1101px) {
    .app-shell.collapsed .ipmas-sidebar {
        top: 74px !important;
        bottom: 0 !important;
        height: calc(100vh - 74px) !important;
        max-height: calc(100vh - 74px) !important;
        width: var(--sidebar-mini) !important;
        overflow-y: scroll !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin !important;
        scrollbar-color: var(--magenta) transparent !important;
    }

    .app-shell.collapsed .sidebar-menu {
        height: auto !important;
        min-height: max-content !important;
        padding: 12px 8px 160px !important;
    }

    .app-shell.collapsed .module-block,
    .app-shell.collapsed .side-link,
    .app-shell.collapsed .sidebar-logout-zone {
        flex-shrink: 0 !important;
    }

    .app-shell.collapsed .side-link {
        justify-content: center !important;
        min-height: 54px !important;
        margin-bottom: 8px !important;
    }

    .app-shell.collapsed .side-link-main {
        justify-content: center !important;
        width: 100% !important;
    }

    .app-shell.collapsed .side-icon {
        min-width: 42px !important;
        width: 42px !important;
        height: 42px !important;
    }

    .app-shell.collapsed .ipmas-sidebar::-webkit-scrollbar {
        width: 7px !important;
    }

    .app-shell.collapsed .ipmas-sidebar::-webkit-scrollbar-track {
        background: transparent !important;
    }

    .app-shell.collapsed .ipmas-sidebar::-webkit-scrollbar-thumb {
        background: var(--magenta) !important;
        border-radius: 999px !important;
    }
}