*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;font-family:Arial,sans-serif;background:#f5f6f8;color:#222}
.login-bg{display:grid;place-items:center;min-height:100vh;padding:20px}
.login-box{width:min(430px,92vw);background:#fff;padding:28px;border-radius:14px;box-shadow:0 10px 35px #0002}
.app{display:flex;min-height:100vh}
aside{width:240px;background:#171b22;color:#fff;padding:18px 16px 22px;position:fixed;inset:0 auto 0 0;overflow-y:auto;overflow-x:hidden;z-index:1000;transition:transform .25s ease}
.logo{width:100%;height:86px;margin:0 0 20px;padding:8px 4px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:transparent;border-radius:0}
.logo img{display:block;width:100%;max-width:195px;max-height:70px;height:auto;object-fit:contain;object-position:center}
.login-logo{display:block;width:260px;max-width:88%;max-height:90px;object-fit:contain;height:auto;margin:0 auto 22px}
nav{width:100%}
nav a{display:block;color:#ddd;text-decoration:none;padding:11px 8px;border-radius:7px;margin:3px 0;white-space:normal;line-height:1.25}
nav a:hover{background:#292f39}
nav a.active{background:#001e8a;color:#fff}
.menu-toggle{display:none;position:fixed;left:14px;top:14px;z-index:1100;width:42px;height:42px;border:0;border-radius:9px;background:#001e8a;color:#fff;font-size:22px;line-height:1;padding:0;box-shadow:0 3px 12px #0003;cursor:pointer}
main{margin-left:240px;width:calc(100% - 240px);min-width:0}
header{min-height:70px;background:#fff;border-bottom:1px solid #e4e6e9;padding:12px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px}
header h2{margin:0;min-width:0}
.content{padding:24px;min-width:0}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card{background:#fff;border:1px solid #e3e6ea;border-radius:12px;padding:18px;box-shadow:0 2px 8px #00000008;min-width:0}.kpi small{color:#666}.kpi strong{display:block;font-size:24px;margin-top:8px}.row{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:16px}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid #eee;text-align:left;font-size:14px}th{background:#fafafa}label{display:block;font-weight:700;margin:12px 0 6px}input,select{width:100%;padding:10px;border:1px solid #cfd3d8;border-radius:7px}button,.btn{display:inline-block;background:#001e8a;color:#fff;border:0;padding:10px 15px;border-radius:7px;text-decoration:none;cursor:pointer}.secondary{background:#343a40}.alert{padding:11px;background:#fff0f0;color:#9c1018;border-radius:7px;margin:10px 0}.success{padding:11px;background:#e9f7ed;color:#196b32;border-radius:7px;margin:10px 0}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
@media(max-width:1100px){aside{width:220px;padding-left:12px;padding-right:12px}.logo img{max-width:180px}main{margin-left:220px;width:calc(100% - 220px)}.content{padding:18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){
  .menu-toggle{display:block}
  aside{width:min(290px,86vw);padding:18px 16px 24px;transform:translateX(-105%);box-shadow:10px 0 30px #0004}
  body.menu-open aside{transform:translateX(0)}
  .logo{height:78px;margin-bottom:14px}.logo img{max-width:205px;max-height:64px}
  main{margin-left:0;width:100%}
  header{padding:12px 16px 12px 68px;min-height:70px}
  header h2{font-size:22px}
  .content{padding:16px}
  .row{grid-template-columns:1fr}
  nav a{font-size:16px;padding:12px 10px}
}
@media(max-width:600px){
  header{align-items:flex-start;flex-direction:column;padding-top:14px;padding-bottom:14px;padding-left:68px}
  header h2{font-size:20px}
  .grid{grid-template-columns:1fr}
  .content{padding:12px}
  .card{padding:14px}
  .login-box{padding:22px}
  .login-logo{max-width:92%}
  .toolbar{gap:6px}
  button,.btn{max-width:100%}
}


/* Provale brand sizing - hard override 2026-08-30 */
aside .provale-brand{
  width:100% !important;
  height:76px !important;
  min-height:76px !important;
  max-height:76px !important;
  padding:6px 0 !important;
  margin:0 0 18px 0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}
aside .provale-brand .provale-brand-img,
aside .logo.provale-brand img{
  display:block !important;
  width:180px !important;
  max-width:100% !important;
  height:auto !important;
  max-height:58px !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 auto !important;
}
@media (max-width:1100px){
  aside .provale-brand .provale-brand-img,
  aside .logo.provale-brand img{width:165px !important;max-height:54px !important;}
}
@media (max-width:850px){
  aside .provale-brand{height:72px !important;min-height:72px !important;max-height:72px !important;}
  aside .provale-brand .provale-brand-img,
  aside .logo.provale-brand img{width:180px !important;max-height:56px !important;}
}
