/* ============================================================
   compact-admin.css — FINAL OVERRIDE LAYER for /admin + /console
   Compact spacing · classic clean back-office · mobile friendly.
   Purely additive — safe to delete to revert.
   ============================================================ */

/* ---------- Compact & classic desktop ---------- */
.content{padding:18px 20px 50px}
.topbar{height:54px;padding:0 20px}
.topbar h1{font-size:17px}
.kpis{gap:12px;margin-bottom:18px}
.kpi{padding:14px 16px;border-radius:11px}
.kpi .val{font-size:23px}
.panel,.card{border-radius:11px;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.panel-head{padding:12px 15px}
.nav-item{padding:9px 11px;font-size:13.5px}
.btn{border-radius:9px}

/* Calmer classic feel — no floaty hovers in the back office */
.btn:hover,.kpi:hover,.nav-item:hover{transform:none !important}

/* Lite devices: drop glass + heavy motion */
.lite .sidebar,.lite .topbar,.lite .modal{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
.lite *{animation-duration:.15s !important;transition-duration:.12s !important}
.lite body::before,.lite body::after{display:none !important}

/* ---------- Mobile (≤ 860px): sidebar becomes a slide-in drawer ---------- */
@media (max-width:860px){
  .app{flex-direction:column}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:950;width:242px;
    transform:translateX(-105%);transition:transform .22s ease;
    background:#fff;box-shadow:4px 0 24px rgba(15,23,42,.16);overflow-y:auto}
  .sidebar.open{transform:translateX(0)}
  .main{width:100%}
  .topbar{position:sticky;top:0;padding:0 12px;gap:10px}
  .content{padding:13px 12px 44px}

  /* hamburger injected by boost.js */
  .mob-menu-btn{display:inline-flex !important;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:9px;border:1px solid #e5e7eb;background:#fff;flex-shrink:0}
  .mob-menu-btn svg{width:20px;height:20px}
  .side-scrim{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:940;
    opacity:0;pointer-events:none;transition:opacity .2s}
  .side-scrim.show{opacity:1;pointer-events:auto}

  /* stacks */
  .grid-2,.grid-3{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr);gap:9px}
  .kpi .val{font-size:20px}

  /* wide data tables scroll horizontally */
  .panel{overflow-x:auto}
  .tbl,table{min-width:640px}

  .toolbar{gap:6px}
  .btn,.subtabs button,input,select{min-height:42px}
  input,select,textarea{font-size:16px}     /* prevent iOS focus zoom */
  .modal{width:calc(100vw - 16px) !important;max-width:100vw;max-height:92vh;overflow:auto}
}
.mob-menu-btn{display:none}

@media (max-width:420px){
  .kpis{grid-template-columns:1fr 1fr;gap:7px}
  .content{padding:10px 9px 40px}
}

/* ---- Payments ledger polish ---- */
#paySeg{gap:6px}
#paySeg button{border-radius:999px;padding:7px 13px;font-size:12.5px}
#payTable .tbl td{padding:9px 10px}
@media (max-width:860px){
  #payQ{width:100% !important}
  #paySeg{overflow-x:auto;flex-wrap:nowrap !important;padding-bottom:4px}
}
