/* Layout v3 */
.page-full{display:flex;flex-direction:column;min-height:100vh;padding-top:var(--bar-h)}
.page-fixed{display:flex;height:100vh;overflow:hidden;padding-top:var(--bar-h)}
.two-col{display:flex;min-height:calc(100vh - var(--bar-h))}
.col-l{flex:1;overflow-y:auto;min-width:0;padding:var(--s12) var(--s16) var(--s16)}
.col-r{width:var(--auth-w);flex-shrink:0;background:var(--bg-1);border-left:1px solid var(--br-1);display:flex;flex-direction:column;overflow-y:auto}
/* Three panel */
.tri-panel{display:flex;flex:1;overflow:hidden}
.lp{width:var(--lp-w);flex-shrink:0;background:var(--bg-1);border-right:1px solid var(--br-1);display:flex;flex-direction:column;overflow-y:auto}
.cp{flex:1;background:var(--bg-0);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.rp{width:var(--rp-w);flex-shrink:0;background:var(--bg-1);border-left:1px solid var(--br-1);display:flex;flex-direction:column;overflow-y:auto}
/* Sidebar + main */
.with-sidebar{display:flex;flex:1;overflow:hidden}
.main-col{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.main-scroll{flex:1;overflow-y:auto;overflow-x:hidden}
/* Grids */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg-2);border:1px solid var(--br-1);border-radius:var(--r12);overflow:hidden;margin-bottom:var(--s12)}
/* Panel section */
.ps{padding:var(--s4) var(--s5);border-bottom:1px solid var(--br-1)}
.ps:last-child{border-bottom:none}
.ps-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--tx-3);margin-bottom:var(--s3)}
/* Scroll row */
.scroll-x{display:flex;gap:var(--s4);overflow-x:auto;padding-bottom:var(--s2)}
.scroll-x::-webkit-scrollbar{height:0}
/* Responsive */
@media(max-width:1200px){.col-l{padding:var(--s10) var(--s8)}.col-r{width:340px}}
@media(max-width:900px){.col-l{padding:var(--s8) var(--s5)}}
@media(max-width:768px){
  .two-col{flex-direction:column}
  .col-r{width:100%;border-left:none;border-top:1px solid var(--br-1)}
  .stat-grid{grid-template-columns:1fr 1fr}
  .lp,.rp{width:100%;border:none;border-bottom:1px solid var(--br-1)}
}
@media(max-width:480px){.col-l{padding:var(--s5) var(--s4)}.g3{grid-template-columns:1fr 1fr}.g4{grid-template-columns:1fr 1fr}}
