/* =====================================================================
   VONA — shared application components (genuinely reusable only).
   Page-specific rules live in lxv/pages/<area>/<page>.css
   ===================================================================== */

/* ---------------------------------------------------- stat / KPI tiles */
.lxd-stat,.lxpl-stat,.lxst-stat{background:var(--v-surface);border:.8px solid var(--v-border);
  border-radius:var(--v-r-card);box-shadow:var(--v-shadow);padding:16px 18px}
.lxd-stat strong,.lxpl-stat b,.lxst-stat b{font-size:24px;font-weight:700;color:var(--v-heading);letter-spacing:-.02em;line-height:1.15}
.lxd-stat span,.lxd-stat small,.lxpl-stat small,.lxst-stat small{color:var(--v-muted);font-size:12.5px;font-weight:500}
.lxd-stat-label,.lxpl-stat small{text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600;color:var(--v-muted)}
.lxpl-stat small i{color:var(--v-primary)}
.lx-delta,.lxd-stat small{color:var(--v-primary)}
.lxpl-stat-money{background:var(--v-primary-soft);border-color:var(--v-primary-soft-2)}
.lxpl-stat-money b{color:var(--v-primary-d)}
.lx-kv{border-bottom:.8px dashed var(--v-border);font-size:13.5px;padding:9px 0}
.lx-kv span{color:var(--v-muted)}.lx-kv b{color:var(--v-heading);font-weight:600}

/* ------------------------------------------------------ list / filters */
.lxpl-card,.lxst-card{padding:0;overflow:hidden}
.lxpl-filters{background:var(--v-light);border-bottom:.8px solid var(--v-border);padding:14px 16px}
.lxpl-f .form-control{background:var(--v-surface) !important;border:.8px solid var(--v-border) !important;
  height:36px !important;min-height:36px !important;border-radius:var(--v-r) !important;font-size:13.5px}
.lxpl-f>i{color:var(--v-g400)}
.lxpl-f-actions .btn{height:36px;border-radius:var(--v-r) !important}
.lxpl-table thead th,.lxst-table thead th{background:var(--v-light) !important}
.lxpl-cons a{color:var(--v-heading);font-weight:600}
.lxpl-cons a:hover{color:var(--v-primary)}
.lxpl-copy{color:var(--v-primary)}
.lxpl-copy:hover{background:var(--v-primary-soft)}
.lxpl-upd,.lxpl-type,.lxpl-order,.lxpl-store{color:var(--v-muted)}
.lxpl-rcpt i{color:var(--v-g400)}
.lxpl-amt span{color:var(--v-muted)}.lxpl-amt b{color:var(--v-heading)}
.lxst-id{color:var(--v-muted)}
.lxst-name b{color:var(--v-heading)}
.lxst-badge{background:var(--v-primary-soft) !important;color:var(--v-primary-d) !important}
.lxst-table tr.is-default td{background:var(--v-primary-soft) !important}
.lxst-btn{border-radius:var(--v-r-sm) !important;font-size:12.5px;padding:6px 11px;
  border:.8px solid var(--v-border) !important;background:var(--v-surface) !important;color:var(--v-text) !important}
.lxst-btn:hover{background:var(--v-light) !important;border-color:var(--v-border-2) !important;color:var(--v-heading) !important}
.lxst-btn.primary{background:var(--v-primary-soft) !important;border-color:var(--v-primary-soft-2) !important;color:var(--v-primary-d) !important}
.lxst-btn.danger:hover{background:var(--v-danger-soft) !important;border-color:var(--v-danger-soft) !important;color:var(--v-danger) !important}
.lxst-btn.muted{background:var(--v-light) !important;color:var(--v-muted) !important;border-color:transparent !important}

/* -------------------------------------------------------- forms (pages) */
.lxpc-field label,.lxpc-field-label{font-size:13px;font-weight:500;color:var(--v-g600)}
.lxpc-field .req{color:var(--v-danger)}
.lxpc-tip{color:var(--v-g400)}
.lxpc-field .form-control,.lxpc-field .select2-container .select2-selection--single{
  height:38px !important;min-height:38px !important;border-radius:var(--v-r) !important;
  background:var(--v-surface) !important;border:.8px solid var(--v-border) !important}
.lxpc-field textarea.form-control{height:auto !important;min-height:90px !important}
.lxpc-money{background:var(--v-surface);border:.8px solid var(--v-border);border-radius:var(--v-r);overflow:hidden}
.lxpc-money>span{background:var(--v-light);border-right:.8px solid var(--v-border);color:var(--v-g600);flex:0 0 42px}
.lxpc-money .form-control{border:0 !important;border-radius:0 !important}
.lxpc-money:focus-within{border-color:var(--v-primary);box-shadow:0 0 0 3px rgba(var(--v-primary-rgb),.13)}
.lxpc-pickup{border:.8px dashed var(--v-border);border-radius:var(--v-r-lg)}
.lxpc-toggle{border:.8px solid var(--v-border);background:var(--v-surface);border-radius:var(--v-r);font-size:13.5px}
.lxpc-toggle:has(input:checked){background:var(--v-primary-soft);border-color:var(--v-primary-soft-2);color:var(--v-primary-d)}
.lxpc-toggle input{accent-color:var(--v-primary)}
.lxpc-toggle small{color:var(--v-primary-d)}
.lxpc-pay-opt{border:.8px solid var(--v-border);border-radius:var(--v-r-lg);background:var(--v-surface)}
.lxpc-pay-opt:has(input:checked){border-color:var(--v-primary);background:var(--v-primary-soft);box-shadow:none}
.lxpc-pay-opt b{color:var(--v-heading)}.lxpc-pay-opt small{color:var(--v-muted)}
.lxpc-locate{border:.8px solid var(--v-border);color:var(--v-primary);border-radius:var(--v-r-sm)}
.lxpc-locate:hover{background:var(--v-primary-soft)}
.lxpc-map,.lxst-map{border:.8px solid var(--v-border);border-radius:var(--v-r-lg);background:var(--v-light)}
.lxpc-cost dl>div{border-bottom:.8px dashed var(--v-border);font-size:13.5px}
.lxpc-cost dt{color:var(--v-muted)}.lxpc-cost dd{color:var(--v-heading);font-weight:600}
.lxpc-cost-total{border-top:.8px solid var(--v-border) !important}
.lxpc-cost-payable{background:var(--v-primary-soft);border-radius:var(--v-r-lg);border:0 !important}
.lxpc-cost-payable dt,.lxpc-cost-payable dd{color:var(--v-primary-d) !important}
.lxpc-notes p i{color:var(--v-primary)}
.lxpc-links a i{color:var(--v-primary)}
.lxpc-links a:hover{background:var(--v-light)}
.lxst-geo-sep{color:var(--v-g300)}

/* --------------------------------------------------- consignment detail */
.lxpd-back{color:var(--v-muted)}.lxpd-back:hover{color:var(--v-primary)}
.lxpd-id b{color:var(--v-heading)}
.lxpd-store i{color:var(--v-primary)}
.lxpd-kv dt{color:var(--v-muted);font-size:12px}
.lxpd-kv dd{color:var(--v-heading);font-size:13.5px}
.lxpd-report{color:var(--v-danger)}
.lxpd-share-row .form-control{background:var(--v-light) !important}
/* timeline */
.lxtl-steps li::before{background:var(--v-border)}
.lxtl-steps li.done::before,.lxtl-steps li.now::before{background:var(--v-primary)}
.lxtl-dot{border:2px solid var(--v-border);color:var(--v-g400);background:var(--v-surface)}
.lxtl-steps li.done .lxtl-dot{background:var(--v-primary);border-color:var(--v-primary);color:#fff}
.lxtl-steps li.now .lxtl-dot{border-color:var(--v-primary);color:var(--v-primary);box-shadow:0 0 0 4px rgba(var(--v-primary-rgb),.15)}
.lxtl-steps li.now.bad .lxtl-dot{border-color:var(--v-danger);color:var(--v-danger);box-shadow:0 0 0 4px rgba(216,67,52,.12)}
.lxtl-steps small{color:var(--v-muted)}
.lxtl-steps li.done small,.lxtl-steps li.now small{color:var(--v-heading)}
.lxtl-groups{border-left:2px solid var(--v-border)}
.lxtl-group h4{color:var(--v-heading)}
.lxtl-group h4 i{background:var(--v-surface);color:var(--v-primary)}
.lxtl-group.now.bad h4 i{color:var(--v-danger)}
.lxtl-ev p{color:var(--v-text)}
.lxtl-ev small,.lxtl-ev time{color:var(--v-muted)}

/* ------------------------------------------------------------- wallet */
.lxwl-balance{background:var(--v-primary);border-radius:var(--v-r-card)}
.lxwl-balance::before{background:radial-gradient(420px 220px at 90% -10%,rgba(255,255,255,.22),transparent 70%)}
.lxwl-hint,.lxwl-methods{color:var(--v-muted)}
.lxwl-methods i{color:var(--v-primary)}
.lxwl-quick button{border:.8px solid var(--v-border);background:var(--v-surface);color:var(--v-text);border-radius:var(--v-r-pill)}
.lxwl-quick button:hover,.lxwl-quick button.on{background:var(--v-primary-soft);border-color:var(--v-primary-soft-2);color:var(--v-primary-d)}
.lxwl-amount .lxpc-money .form-control{background:var(--v-surface) !important}
.lxwl-how b{color:var(--v-heading)}.lxwl-how p{color:var(--v-muted)}
.lxwl-withdraw{border-top:.8px dashed var(--v-border)}
.lxwl-withdraw b{color:var(--v-heading)}.lxwl-withdraw p{color:var(--v-muted)}

/* ------------------------------------------------- admin: geo manager */
.lxgeo-search .form-control{background:var(--v-surface) !important;border:.8px solid var(--v-border) !important}
.lxgeo-col{min-height:420px}
.lxgeo-count{background:var(--v-light);color:var(--v-muted)}
.lxgeo-parent{color:var(--v-muted)}
.lxgeo-add .form-control{height:36px !important;min-height:36px !important}
.lxgeo-item{color:var(--v-text);border-radius:var(--v-r)}
.lxgeo-item:hover{background:var(--v-light)}
.lxgeo-item.on{background:var(--v-primary-soft);border-color:var(--v-primary-soft-2);color:var(--v-primary-d)}
.lxgeo-item.off .lxgeo-name{color:var(--v-muted)}
.lxgeo-sub{background:var(--v-surface);border:.8px solid var(--v-border);color:var(--v-muted)}
.lxgeo-tool{color:var(--v-g400)}
.lxgeo-tool:hover{background:var(--v-surface);color:var(--v-primary)}
.lxgeo-tool.danger:hover{color:var(--v-danger);background:var(--v-danger-soft)}
.lxgeo-empty{border:.8px dashed var(--v-border);color:var(--v-muted)}
.lxgeo-go{color:var(--v-g300)}

/* --------------------------------------------- permissions matrix */
.lxpm-card,.lxpm-group{border:.8px solid var(--v-border);border-radius:var(--v-r-card);background:var(--v-surface)}
.lxpm-group-head{background:var(--v-light);border-bottom:.8px solid var(--v-border)}
.lxpm-chip{border:.8px solid var(--v-border);border-radius:var(--v-r-pill);background:var(--v-surface)}
.lxpm-chip:has(input:checked){background:var(--v-primary-soft);border-color:var(--v-primary-soft-2);color:var(--v-primary-d)}

/* --------------------------------------------------------- utilities */
.text-brand,.text-primary{color:var(--v-primary) !important}
.bg-primary{background:var(--v-primary) !important}
.lx-chip-green{background:var(--v-primary-soft);color:var(--v-primary-d)}
.lx-chip-blue{background:var(--v-secondary-soft);color:#1f7fb5}
.lx-chip-yellow{background:var(--v-warning-soft);color:#a9711a}
.lx-chip-violet{background:var(--v-purple-soft);color:var(--v-purple)}

/* ------------------------------------ merchant approval banner (every panel page) */
.lxap-banner{display:flex;align-items:flex-start;gap:12px;margin:0 0 18px;padding:14px 16px;
  background:var(--v-warning-soft);border:.8px solid var(--v-warning);border-left-width:3px;
  border-radius:var(--v-r-lg);color:var(--v-text)}
.lxap-banner>i{font-size:20px;color:var(--v-warning);flex:none;margin-top:1px}
.lxap-banner b{display:block;font-size:14px;color:var(--v-heading);margin-bottom:2px}
.lxap-banner p{margin:0;font-size:13.5px;color:var(--v-g600);line-height:1.5}
.lxap-banner .btn{margin-left:auto;flex:none;align-self:center;white-space:nowrap}
.lxap-banner.bad{background:var(--v-danger-soft);border-color:var(--v-danger)}
.lxap-banner.bad>i{color:var(--v-danger)}
@media (max-width:767px){
  .lxap-banner{flex-wrap:wrap}
  .lxap-banner .btn{margin-left:0;width:100%;justify-content:center;margin-top:4px}
}
