body{background:#f4f7fb;color:#17253c;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}.lsms-shell{display:flex;min-height:100vh}.lsms-sidebar{width:258px;flex:0 0 258px;background:#102b50;color:#e3edf9}.lsms-sidebar .offcanvas-body{min-height:100vh}.lsms-logo{font-size:1.28rem;font-weight:800;letter-spacing:.02em}.lsms-logo span{color:#69c7ff}.lsms-logo small{font-size:.7rem;color:#a4bbd7}.lsms-nav-label{font-size:.67rem;letter-spacing:.13em;color:#8fa9c7;font-weight:700;margin:8px 12px}.lsms-nav-link{display:flex;gap:12px;align-items:center;padding:10px 12px;color:#d6e3f4;text-decoration:none;border-radius:10px;margin:2px 0;font-size:.9rem}.lsms-nav-link:hover,.lsms-nav-link.active{background:#225384;color:#fff}.lsms-nav-link.disabled-link{opacity:.57;cursor:not-allowed;pointer-events:none}.lsms-main{flex:1;min-width:0;display:flex;flex-direction:column}.lsms-topbar{background:#fff;border-bottom:1px solid #e7edf5;padding:18px 28px}.lsms-content{padding:28px;flex:1}.lsms-footer{padding:14px 28px;color:#8291a5;font-size:.76rem;border-top:1px solid #e7edf5}.lsms-kpi,.lsms-panel{border:1px solid #e9eef6;border-radius:16px;box-shadow:0 4px 22px #193e6910}.lsms-kpi .card-body{padding:22px}.kpi-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.5rem}.chart-wrap{height:280px;position:relative}.machine-tile{background:#f5f8fd;padding:18px;border-radius:12px}.table thead th{font-size:.78rem;color:#6e7e92;font-weight:700;white-space:nowrap}.auth-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#0a3c79,#1578b8 55%,#eff7ff 55%)}.auth-card{width:min(440px,94vw);border:0;border-radius:20px;box-shadow:0 20px 65px #082e5a40}.brand{font-weight:800;letter-spacing:.03em;color:#0c589a}.stat{border:0;border-radius:15px;box-shadow:0 4px 22px #18345a12}.sidebar{background:#102c50;min-height:100vh}.sidebar a{color:#d8e7f9;text-decoration:none;display:block;padding:12px 18px;border-radius:9px}.sidebar a:hover{background:#22517f;color:#fff}.main{min-height:100vh}.table td{vertical-align:middle}.lsms-mobile{background:#102b50}@media(max-width:991.98px){.lsms-sidebar{width:275px}.lsms-sidebar .offcanvas-body{min-height:100%;width:100%}.lsms-content{padding:18px}.lsms-topbar{padding:14px 18px}}@media(max-width:575.98px){.lsms-kpi .fs-3{font-size:1.5rem!important}.lsms-content{padding:12px}}

/* Step 3.1 layout hardening */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;margin:0;overflow-x:hidden}
.lsms-shell{display:flex!important;flex-direction:row;align-items:stretch;width:100%;min-height:100vh}
.lsms-sidebar{flex:0 0 258px!important;width:258px!important;max-width:258px;background:#102b50!important;color:#e3edf9!important;position:relative;z-index:10}
.lsms-sidebar .offcanvas-body{display:flex!important;flex-direction:column!important;min-height:100vh}
.lsms-sidebar a.lsms-nav-link{display:flex!important;align-items:center;gap:12px;color:#d6e3f4!important;text-decoration:none!important;padding:10px 12px;border-radius:10px}
.lsms-sidebar a.lsms-nav-link.active,.lsms-sidebar a.lsms-nav-link:hover{background:#225384;color:#fff!important}
.lsms-sidebar a.disabled-link{pointer-events:none;opacity:.55}
.lsms-main{flex:1 1 0!important;width:0;min-width:0!important;max-width:100%;display:flex;flex-direction:column}
.lsms-content{flex:1;min-width:0;width:100%;padding:24px}
.lsms-content .row{min-width:0}
.lsms-content .card{min-width:0}
.lsms-content .table-responsive{max-width:100%;overflow-x:auto}
.lsms-topbar{min-height:65px}
@media(max-width:991.98px){.lsms-shell{display:block!important}.lsms-main{width:100%!important}.lsms-sidebar{position:fixed;top:0;bottom:0;left:0;transform:translateX(-100%);visibility:hidden;transition:transform .25s,visibility .25s;max-width:280px!important;width:280px!important;z-index:1050}.lsms-sidebar.show,.lsms-sidebar.showing{visibility:visible;transform:translateX(0)}.lsms-sidebar .offcanvas-body{min-height:0;height:calc(100vh - 65px);overflow-y:auto}.lsms-content{padding:16px}}
@media(min-width:992px){.lsms-sidebar{visibility:visible!important;transform:none!important;position:sticky;top:0;height:100vh;overflow-y:auto}.lsms-mobile{display:none!important}}

/* Step 3.3: permanent sidebar palette and viewport-height layout */
:root{--lsms-navy:#112d52;--lsms-navy-hover:#244e7d;--lsms-nav-text:#dce9fa;--lsms-nav-muted:#91a8c7}
html,body{min-height:100%;background:#f3f6fc}
.lsms-shell{min-height:100vh;align-items:stretch!important}
.lsms-sidebar{background:var(--lsms-navy)!important;color:var(--lsms-nav-text)!important;align-self:stretch;box-shadow:3px 0 18px rgba(10,35,67,.08)}
.lsms-sidebar .offcanvas-body{background:var(--lsms-navy)!important;color:var(--lsms-nav-text)!important;min-height:100vh!important}
.lsms-sidebar .lsms-logo,.lsms-sidebar .lsms-logo small{color:#fff}
.lsms-sidebar .lsms-logo small{color:#a8bfdc}
.lsms-sidebar .lsms-nav-label{color:#8fb6e5!important}
.lsms-sidebar a.lsms-nav-link{color:var(--lsms-nav-text)!important;transition:background-color .18s,color .18s}
.lsms-sidebar a.lsms-nav-link:hover,.lsms-sidebar a.lsms-nav-link.active{background:var(--lsms-navy-hover)!important;color:#fff!important}
.lsms-sidebar a.lsms-nav-link.disabled-link{color:#b5c5d8!important;opacity:.58}
.lsms-sidebar .btn-outline-light{color:#fff;border-color:#a7c1e1;background:transparent}
.lsms-sidebar .btn-outline-light:hover{background:#fff;color:var(--lsms-navy)}
.lsms-main{min-height:100vh}
.lsms-mobile{background:var(--lsms-navy)!important}
.auth-wrap{min-height:100vh;background:linear-gradient(135deg,var(--lsms-navy) 0%,#1d568c 55%,#edf5ff 55%)!important}
@media(min-width:992px){.lsms-sidebar{position:sticky!important;top:0;height:100vh!important;overflow-y:auto;overscroll-behavior:contain}.lsms-sidebar .offcanvas-body{min-height:100%!important;height:100%!important}}
@media(max-width:991.98px){.lsms-sidebar{background:var(--lsms-navy)!important}.lsms-sidebar .offcanvas-body{min-height:0!important;height:calc(100dvh - 60px)!important;background:var(--lsms-navy)!important;overflow-y:auto}.lsms-sidebar .offcanvas-header{background:var(--lsms-navy)!important}}

/* Step 3.4: fixed full-height sidebar; only the menu scrolls */
@media (min-width: 992px) {
  .lsms-shell { display:block!important; min-height:100vh; }
  .lsms-sidebar.offcanvas-lg {
    position:fixed!important; left:0!important; top:0!important; bottom:0!important;
    width:258px!important; max-width:258px!important; height:100vh!important;
    height:100dvh!important; overflow:hidden!important; transform:none!important;
    visibility:visible!important; background:#112d52!important; z-index:1030;
  }
  .lsms-sidebar .offcanvas-body {
    display:flex!important; flex-direction:column!important; height:100%!important;
    min-height:0!important; padding:16px!important; overflow:hidden!important;
    background:#112d52!important;
  }
  .lsms-sidebar-scroll { min-height:0; flex:1 1 auto; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:#41628a transparent; }
  .lsms-sidebar-account { flex:0 0 auto; margin-top:auto; padding:14px 0 0; border-top:1px solid rgba(255,255,255,.14); background:#112d52!important; }
  .lsms-main { width:auto!important; margin-left:258px!important; min-width:0!important; min-height:100vh; }
}
@media (max-width:991.98px) {
  .lsms-sidebar .offcanvas-body { display:flex!important; flex-direction:column!important; overflow:hidden!important; }
  .lsms-sidebar-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; }
  .lsms-sidebar-account { flex:0 0 auto; padding-top:12px; margin-top:auto; border-top:1px solid rgba(255,255,255,.14); background:#112d52!important; }
}
.lsms-sidebar .lsms-sidebar-scroll a { flex-shrink:0; }
.lsms-sidebar .lsms-sidebar-account .btn { width:100%; }
