/* ============================================================
   PharmaCare ERP — app.css | Pure Light Theme | Larger fonts
   ============================================================ */
:root {
  --primary:#1565c0; --primary-dark:#0d47a1; --primary-light:#e3f0ff;
  --success:#2e7d32; --success-light:#e8f5e9;
  --danger:#c62828; --danger-light:#ffebee;
  --warning:#e65100; --warning-light:#fff3e0;

  --bg-base:#f4f6f9;
  --bg-card:#ffffff;
  --bg-table-head:#dfe6f0;
  --bg-table-alt:#f6f8fc;
  --border:#c4ccd8;
  --border-dark:#9aa5b8;

  --text-primary:#1a2332;
  --text-secondary:#3a4a60;
  --text-muted:#6b7a90;

  --topbar-h:46px;
  --menubar-h:36px;
  --shadow:0 1px 4px rgba(0,0,0,.08);
  --shadow-md:0 4px 16px rgba(0,0,0,.12);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;-webkit-font-smoothing:antialiased}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.45}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-dark)}
.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}
.text-right{text-align:right}.text-center{text-align:center}

/* ── Bootstrap Overrides (bigger fonts!) ──────── */
.form-control,.form-select{
  background:#fff!important;border:1px solid var(--border)!important;
  color:var(--text-primary)!important;border-radius:3px;
  font-size:.95rem;padding:.35rem .55rem;height:34px;
}
.form-control:focus,.form-select:focus{
  border-color:var(--primary)!important;
  box-shadow:0 0 0 2px rgba(21,101,192,.18)!important;outline:none;
}
.form-control::placeholder{color:var(--text-muted)}
.form-label{font-size:.82rem;font-weight:700;color:var(--text-secondary);margin-bottom:3px;display:block;text-transform:uppercase;letter-spacing:.03em}
textarea.form-control{height:auto;min-height:60px}
.input-group-text{background:#eef1f7;border:1px solid var(--border);color:var(--text-secondary);font-size:.88rem;padding:.35rem .6rem;font-weight:600}

.btn{font-size:.88rem;font-weight:600;border-radius:3px;padding:.38rem .85rem;height:34px;display:inline-flex;align-items:center;gap:5px;transition:all .12s;cursor:pointer;white-space:nowrap;border:1px solid transparent}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}
.btn-success{background:var(--success);border-color:var(--success);color:#fff}
.btn-success:hover{background:#1b5e20;color:#fff}
.btn-warning{background:#e65100;border-color:#e65100;color:#fff}
.btn-warning:hover{background:#bf360c;color:#fff}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-danger:hover{background:#b71c1c;color:#fff}
.btn-secondary{background:#546e7a;border-color:#546e7a;color:#fff}
.btn-info{background:var(--primary);border-color:var(--primary);color:#fff}
.btn-outline-primary{border:1px solid var(--primary);color:var(--primary);background:#fff}
.btn-outline-primary:hover{background:var(--primary);color:#fff}
.btn-outline-secondary{border:1px solid var(--border-dark);color:var(--text-secondary);background:#fff}
.btn-outline-secondary:hover{background:#e8edf5;color:var(--text-primary)}
.btn-outline-danger{border:1px solid var(--danger);color:var(--danger);background:#fff}
.btn-outline-danger:hover{background:var(--danger);color:#fff}
.btn-outline-success{border:1px solid var(--success);color:var(--success);background:#fff}
.btn-outline-success:hover{background:var(--success);color:#fff}
.btn-sm{font-size:.82rem;padding:.25rem .6rem;height:28px}
.btn-xs{font-size:.78rem;padding:.18rem .45rem;height:25px}
.btn-lg{font-size:1rem;padding:.45rem 1.15rem;height:40px}

.table{font-size:.92rem;color:var(--text-primary);border-color:var(--border);margin:0}
.table thead th{background:var(--bg-table-head);color:var(--text-secondary);font-size:.82rem;font-weight:700;border:1px solid var(--border);padding:.45rem .55rem;white-space:nowrap;letter-spacing:.02em;text-transform:uppercase}
.table td{border:1px solid var(--border);padding:.4rem .55rem;vertical-align:middle}
.table-hover tbody tr:hover td{background:#eef4ff}
.table tbody tr:nth-child(even) td{background:var(--bg-table-alt)}
.table tfoot td{background:var(--bg-table-head);font-weight:700;border:1px solid var(--border)}

.alert{border-radius:4px;font-size:.92rem;padding:.55rem 1rem;border-width:1px}
.badge{font-size:.78rem;font-weight:700;padding:.28em .6em;border-radius:3px}

/* ── TOP HEADER BAR ──────────────────────────── */
.app-topbar{
  position:fixed;top:0;left:0;right:0;height:var(--topbar-h);
  background:var(--primary);display:flex;align-items:center;
  padding:0 .85rem;gap:10px;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.app-brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:1.05rem;flex-shrink:0;padding-right:.85rem;border-right:1px solid rgba(255,255,255,.25);margin-right:.25rem;line-height:1.1}
.app-brand i{font-size:1.4rem}
.app-brand-sub{font-size:.7rem;font-weight:400;opacity:.75}

.topbar-quick{display:flex;align-items:center;gap:5px;flex:1}
.topbar-quick .tbq-btn{
  height:30px;padding:.25rem .7rem;font-size:.85rem;font-weight:600;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);
  color:#fff;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;
  text-decoration:none;transition:all .1s;white-space:nowrap;
}
.topbar-quick .tbq-btn:hover{background:rgba(255,255,255,.28);color:#fff}
.topbar-quick .tbq-btn.tbq-sale{background:rgba(46,125,50,.85);border-color:rgba(46,125,50,.95)}
.topbar-quick .tbq-btn.tbq-sale:hover{background:#2e7d32}
.topbar-quick .tbq-btn.tbq-pur{background:rgba(230,81,0,.85);border-color:rgba(230,81,0,.95)}
.topbar-quick .tbq-btn.tbq-pur:hover{background:#e65100}
.topbar-quick .kbd-hint{font-size:.7rem;opacity:.7;margin-left:3px;font-weight:400;background:rgba(0,0,0,.2);padding:1px 4px;border-radius:2px}
.topbar-sep{width:1px;height:24px;background:rgba(255,255,255,.22);margin:0 4px}

.app-topbar-user{margin-left:auto;display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.app-user-name{font-size:.86rem;color:rgba(255,255,255,.9);font-weight:600;line-height:1.1}
.app-user-role{font-size:.7rem;color:rgba(255,255,255,.65)}
.app-user-avatar{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.85rem}
.btn-logout{height:30px;font-size:.82rem;padding:.25rem .65rem;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:3px;display:flex;align-items:center;gap:4px;text-decoration:none}
.btn-logout:hover{background:rgba(220,53,69,.5);border-color:rgba(220,53,69,.5);color:#fff}

/* ── MENU BAR ────────────────────────────────── */
.app-menubar{
  position:fixed;top:var(--topbar-h);left:0;right:0;height:var(--menubar-h);
  background:#fff;border-bottom:2px solid var(--border);
  display:flex;align-items:center;padding:0 .5rem;gap:0;z-index:999;
  box-shadow:0 1px 3px rgba(0,0,0,.06);overflow-x:auto;
}
.menu-item{
  display:flex;align-items:center;gap:6px;padding:.25rem .8rem;height:var(--menubar-h);
  font-size:.88rem;font-weight:600;color:var(--text-secondary);
  border-right:1px solid var(--border);text-decoration:none;cursor:pointer;
  transition:all .1s;white-space:nowrap;position:relative;
}
.menu-item:first-child{border-left:1px solid var(--border)}
.menu-item i{font-size:1rem}
.menu-item:hover{background:var(--primary-light);color:var(--primary)}
.menu-item.active{background:var(--primary-light);color:var(--primary);font-weight:700}
.menu-item.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary)}
.menu-kbd{font-size:.7rem;opacity:.55;margin-left:3px;font-weight:400}

/* ── Page Layout ─────────────────────────────── */
.main-wrapper{
  margin-top:var(--topbar-h);
  min-height:calc(100vh - var(--topbar-h));
}
.page-content{padding:.85rem 1.1rem}
.page-header-bar{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:.7rem;gap:10px;flex-wrap:wrap;
  padding:.5rem .8rem;background:#fff;
  border:1px solid var(--border);border-radius:4px;box-shadow:var(--shadow);
}
.page-header-bar h5{font-size:1.05rem;font-weight:700;margin:0;color:var(--text-primary)}
.page-header-bar small{font-size:.82rem;color:var(--text-muted)}

/* ── Card Box ─────────────────────────────────── */
.card-box{background:#fff;border:1px solid var(--border);border-radius:4px;padding:.85rem 1rem;box-shadow:var(--shadow);margin-bottom:.75rem}
.card-box-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;padding-bottom:.45rem;border-bottom:1px solid var(--border)}
.card-box-header h6{margin:0;font-size:.95rem;font-weight:700}

/* ── Stat Cards ──────────────────────────────── */
.stat-card{background:#fff;border:1px solid var(--border);border-radius:4px;padding:.85rem 1rem;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}
.stat-icon{width:42px;height:42px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.stat-label{font-size:.78rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.stat-value{font-size:1.3rem;font-weight:700;color:var(--text-primary);line-height:1.2}
.stat-sub{font-size:.82rem;color:var(--text-muted);margin-top:2px}

.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.quick-action-btn{display:flex;align-items:center;gap:8px;padding:.55rem .8rem;background:#f5f7fb;border:1px solid var(--border);border-radius:3px;color:var(--text-secondary);font-size:.88rem;font-weight:600;transition:all .1s;text-decoration:none}
.quick-action-btn i{font-size:1.05rem;color:var(--primary)}
.quick-action-btn:hover{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}

/* ── ERP Form / Grid ────────────────────────── */
.erp-form-wrap{font-size:.92rem}
.erp-header{background:#fff;border:1px solid var(--border);border-radius:4px;padding:.65rem .85rem;margin-bottom:.6rem;box-shadow:var(--shadow)}
.erp-field-label{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.erp-field-label .req{color:var(--danger);margin-left:1px}

/* GST info bar */
.erp-gst-bar{background:#fffde7;border:1px solid #ffe57f;border-radius:3px;padding:.4rem .75rem;font-size:.92rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.erp-gst-bar strong{color:#5d4037;font-weight:700}

.erp-grid-wrap{background:#fff;border:1px solid var(--border);border-radius:4px;box-shadow:var(--shadow);overflow:visible;margin-bottom:.6rem;position:relative}
.erp-grid-title{background:var(--bg-table-head);padding:.45rem .85rem;font-size:.92rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);border-radius:4px 4px 0 0}
.erp-grid-scroll{overflow-x:auto;overflow-y:visible;position:relative}

.erp-grid{width:100%;border-collapse:collapse;font-size:.92rem}
.erp-grid thead th{background:#dce6f5;color:#1a2a6c;font-size:.78rem;font-weight:700;border:1px solid #b8c8e8;padding:.4rem .5rem;white-space:nowrap;text-align:center;position:sticky;top:0;z-index:2}
.erp-grid tbody td{border:1px solid #dce6f5;padding:0;vertical-align:middle;background:#fff;position:relative}
.erp-grid tbody tr:hover td{background:#f0f5ff}
.erp-grid tbody tr.row-active td{background:#e8f0fe}

.cell-input{width:100%;height:32px;padding:.3rem .5rem;border:none;outline:none;background:transparent;font-size:.92rem;color:var(--text-primary);font-family:inherit}
.cell-input:focus{background:#fffde7;outline:1px solid var(--primary)}
.cell-input[readonly]{background:#f5f7fb;color:var(--text-secondary);cursor:default}
.cell-input[readonly]:focus{background:#f5f7fb;outline:none}
.cell-input.filled{background:#eef4ff;font-weight:600;color:#1a2a6c}
.cell-select{width:100%;height:32px;padding:.2rem .35rem;border:none;outline:none;background:transparent;font-size:.92rem;font-family:inherit}
.cell-select:focus{background:#fffde7;outline:1px solid var(--primary)}
td.sno{width:34px;text-align:center;color:var(--text-muted);font-weight:700;padding:.25rem .3rem;font-size:.85rem}
td.td-remove{width:28px;text-align:center}
.btn-row-remove{background:none;border:none;cursor:pointer;color:#bbb;font-size:1rem;padding:0 .25rem;transition:color .1s;line-height:1}
.btn-row-remove:hover{color:var(--danger)}

/* ── FLOATING DROPDOWN ──────────────────────── */
.erp-float-dd{
  position:fixed;z-index:9999;background:#fff;
  border:1.5px solid var(--primary);border-radius:4px;
  box-shadow:0 8px 32px rgba(0,0,0,.25);
  min-width:520px;max-height:300px;
  display:flex;flex-direction:column;
}
.erp-float-dd.dd-batch{min-width:420px}
.dd-head{display:flex;background:#dce6f5;border-bottom:1px solid #b8c8e8;flex-shrink:0}
.dd-head span{font-size:.78rem;font-weight:700;color:#1a2a6c;padding:.32rem .5rem;border-right:1px solid #b8c8e8;white-space:nowrap;flex-shrink:0}
.dd-head span:last-child{border-right:none}
.dd-body{overflow-y:auto;flex:1}
.dd-item{display:flex;cursor:pointer;border-bottom:1px solid #eef1f7;transition:background .08s}
.dd-item:hover,.dd-item.dd-active{background:#dce6f5}
.dd-item.dd-active{box-shadow:inset 3px 0 0 var(--primary)}
.dd-item span{font-size:.88rem;padding:.35rem .5rem;border-right:1px solid #f0f3f8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.dd-item span:last-child{border-right:none}
.dd-item .dd-out{color:var(--danger);font-weight:700}
.dd-item .dd-in{color:var(--success);font-weight:600}
.dd-item .dd-warn{color:var(--warning);font-weight:600}
.dd-no-result{padding:.65rem .85rem;font-size:.88rem;color:var(--text-muted)}
.dd-add-new{padding:.55rem .85rem;background:#e8f5e9;color:var(--success);font-size:.88rem;font-weight:700;border-top:2px solid var(--success);cursor:pointer;display:flex;align-items:center;gap:6px}
.dd-add-new:hover{background:#c8e6c9}
.dd-add-new i{font-size:1rem}

.grid-cell-wrap{position:relative;width:100%}

/* ── ERP Footer ──────────────────────────────── */
.erp-footer{background:#fff;border:1px solid var(--border);border-radius:4px;padding:.55rem .85rem;box-shadow:var(--shadow)}
.erp-totals-row{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.erp-total-item{display:flex;align-items:center;gap:5px;font-size:.88rem}
.erp-total-item label{font-weight:700;color:var(--text-secondary);white-space:nowrap}
.tot-input{width:105px!important;text-align:right!important;font-weight:600!important;height:32px!important;font-size:.95rem!important;padding:.3rem .55rem!important}
.erp-grand-total{font-size:1.5rem;font-weight:800;color:var(--primary);margin-left:8px;min-width:120px;text-align:right;padding:0 .35rem}
.erp-grand-label{font-size:1.05rem;font-weight:700;color:var(--text-secondary)}
.erp-action-bar{display:flex;align-items:center;gap:8px;margin-top:.55rem;border-top:1px solid var(--border);padding-top:.5rem}

/* ── Product Form Tabs ──────────────────────── */
.pf-tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:.85rem;gap:0}
.pf-tab{padding:.5rem 1.15rem;font-size:.95rem;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .1s;border-radius:3px 3px 0 0}
.pf-tab:hover{color:var(--primary)}
.pf-tab.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--primary-light)}
.pf-pane{display:none}.pf-pane.active{display:block}
.pf-section-title{font-size:.88rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--primary-light);padding-bottom:.3rem;margin-bottom:.65rem;margin-top:.55rem}
.pf-checkbox-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pf-checkbox-item{display:flex;align-items:center;gap:6px;font-size:.92rem;color:var(--text-secondary);cursor:pointer;user-select:none}
.pf-checkbox-item input{width:16px;height:16px;cursor:pointer;accent-color:var(--primary)}

.totals-grid{display:grid;grid-template-columns:auto auto;gap:.4rem 1rem;align-items:center;font-size:.95rem}
.totals-grid span:nth-child(odd){color:var(--text-secondary);font-weight:600;text-align:right}
.totals-grid span:nth-child(even){text-align:right;font-weight:500;min-width:100px}

/* ════════════════════════════════════════════════════════
   ── PROFESSIONAL TAX INVOICE (letterhead style) ──
   ════════════════════════════════════════════════════════ */
.invoice-print-wrap{
  --iv-ink:#1c222b; --iv-navy:#0b3d63; --iv-navy-dark:#082c48;
  --iv-navy-tint:#eef4f9; --iv-line:#d8dee4; --iv-line-strong:#9aa5b3; --iv-muted:#5b6472;
  max-width:820px;margin:.5rem auto;background:#fff;
  border:1px solid var(--iv-line-strong);
  font-family:Arial,'Helvetica Neue',Helvetica,sans-serif;
  color:var(--iv-ink);font-size:11.5px;line-height:1.45;
  font-variant-numeric:tabular-nums;
}

/* Top accent bar + copy tag */
.inv-accent-bar{height:5px;background:linear-gradient(90deg,var(--iv-navy) 0%,var(--iv-navy) 75%,var(--iv-navy-dark) 100%)}
.inv-copy-tag{
  text-align:right;font-size:9.5px;letter-spacing:.7px;color:var(--iv-muted);
  padding:.3rem .85rem 0;text-transform:uppercase;font-weight:700;
}

/* Letterhead */
.inv-letterhead{
  display:grid;grid-template-columns:52px 1fr auto;gap:.85rem;
  padding:.5rem .85rem .65rem;align-items:start;
  border-bottom:2px solid var(--iv-navy);
}
.inv-badge{
  width:52px;height:52px;border-radius:6px;background:var(--iv-navy);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;font-size:1.1rem;letter-spacing:-.5px;flex-shrink:0;
}
.inv-company-block{min-width:0}
.inv-company-name{
  font-size:1.3rem;font-weight:800;color:var(--iv-navy);letter-spacing:.2px;
  line-height:1.15;text-transform:uppercase;
}
.inv-company-addr{font-size:11px;color:var(--iv-muted);margin-top:3px;line-height:1.4}
.inv-company-regline{font-size:10.5px;color:var(--iv-ink);margin-top:5px;display:flex;flex-wrap:wrap;gap:0 1.1rem}
.inv-company-regline b{font-weight:700;color:var(--iv-muted);margin-right:2px}

.inv-title-block{text-align:right;white-space:nowrap}
.inv-doc-title{
  font-size:1rem;font-weight:800;color:var(--iv-navy);letter-spacing:1.8px;
  text-transform:uppercase;margin-bottom:.4rem;
}
.inv-meta-box{border:1px solid var(--iv-line-strong);border-radius:3px;font-size:11px;text-align:left;min-width:195px}
.inv-meta-box .row{display:flex;justify-content:space-between;gap:.6rem;padding:.26rem .55rem;border-bottom:1px solid var(--iv-line)}
.inv-meta-box .row:last-child{border-bottom:none}
.inv-meta-box .row span:first-child{color:var(--iv-muted);font-weight:600}
.inv-meta-box .row span:last-child{font-weight:700;color:var(--iv-ink);text-align:right}
.inv-meta-box .row.inv-num-row span:last-child{color:var(--iv-navy);font-size:12.5px}

/* Bill To / Bill From parties */
.inv-parties{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--iv-line-strong)}
.inv-party{padding:.5rem .85rem}
.inv-party + .inv-party{border-left:1px solid var(--iv-line)}
.inv-party-label{font-size:9.5px;font-weight:700;letter-spacing:.9px;color:var(--iv-navy);text-transform:uppercase;margin-bottom:.28rem}
.inv-party-name{font-weight:700;font-size:12.5px;margin-bottom:1px}
.inv-party-addr{font-size:11px;color:var(--iv-ink);margin-bottom:3px}
.inv-party-line{font-size:10.5px;color:var(--iv-muted);display:flex;flex-wrap:wrap;gap:0 .8rem}
.inv-party-line b{color:var(--iv-ink);font-weight:700}

/* Items table */
.inv-items-table{width:100%;border-collapse:collapse;font-size:10.8px;margin:0}
.inv-items-table thead th{
  background:var(--iv-navy);color:#fff;padding:.4rem .4rem;font-size:9.8px;font-weight:700;
  text-align:center;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;
}
.inv-items-table td{border-bottom:1px solid var(--iv-line);padding:.34rem .4rem;vertical-align:middle;font-size:11px}
.inv-items-table tbody tr:nth-child(even){background:#fafbfc}
.inv-items-table td.text-right{text-align:right}
.inv-items-table td.text-center{text-align:center}
.inv-items-table td.item-name{font-weight:600}
.inv-items-table tr.empty-row td{height:18px;border-bottom:1px dotted #e5e8ec}

/* Tax + totals */
.inv-summary-section{display:grid;grid-template-columns:1.5fr 1fr;border-top:2px solid var(--iv-navy)}
.inv-tax-col{border-right:1px solid var(--iv-line-strong);padding:.5rem .7rem;display:flex;flex-direction:column;gap:.5rem}
.inv-tax-table{width:100%;border-collapse:collapse;font-size:10px}
.inv-tax-table th{background:var(--iv-navy-tint);border:1px solid var(--iv-line-strong);padding:.25rem .3rem;font-weight:700;text-align:center;color:var(--iv-navy)}
.inv-tax-table td{border:1px solid var(--iv-line);padding:.24rem .3rem;text-align:center}
.inv-tax-table tr.total-row{font-weight:700;background:var(--iv-navy-tint)}

.inv-words-box{font-size:10.5px;padding:.4rem .55rem;background:var(--iv-navy-tint);border:1px solid var(--iv-line);border-radius:3px}
.inv-words-box b{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--iv-navy);margin-bottom:2px}

.inv-totals-col{padding:.5rem .7rem;display:flex;flex-direction:column}
.inv-totals-row{display:flex;justify-content:space-between;padding:.22rem 0;border-bottom:1px dotted var(--iv-line-strong);font-size:11.5px}
.inv-totals-row span:first-child{color:var(--iv-muted)}
.inv-totals-row span:last-child{font-weight:600}
.inv-totals-row.disc span:last-child{color:#a33322}
.inv-grand-row{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:.5rem;padding:.55rem .65rem;background:var(--iv-navy);color:#fff;border-radius:3px;
}
.inv-grand-row span:first-child{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.inv-grand-row span:last-child{font-size:1.25rem;font-weight:800}

/* Footer: terms + signature */
.inv-footer-section{display:grid;grid-template-columns:1.4fr 1fr;border-top:1px solid var(--iv-line-strong)}
.inv-terms{padding:.55rem .85rem;font-size:9.8px;color:var(--iv-muted);border-right:1px solid var(--iv-line)}
.inv-terms b{display:block;color:var(--iv-ink);font-size:10px;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.4px}
.inv-terms ol{margin:0;padding-left:1rem}
.inv-terms li{margin-bottom:1px}

.inv-sign-block{padding:.55rem .85rem;display:flex;flex-direction:column;justify-content:space-between}
.inv-sign-for{font-size:11px;font-weight:700;text-align:right;margin-bottom:2.1rem}
.inv-sign-line{display:flex;justify-content:space-between;font-size:10.5px;border-top:1px solid var(--iv-ink);padding-top:.25rem;color:var(--iv-muted)}

.inv-jurisdiction{font-size:9.5px;color:var(--iv-muted);text-align:center;border-top:1px dashed var(--iv-line-strong);padding:.3rem;background:var(--iv-navy-tint)}

/* ── Party / Ledger ──────────────────────────── */
.party-stat-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin-bottom:.85rem}
.party-stat{background:#fff;border:1px solid var(--border);border-radius:4px;padding:.7rem .95rem}
.party-stat-label{font-size:.82rem;color:var(--text-muted);font-weight:700;text-transform:uppercase}
.party-stat-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}

/* ── Reports ─────────────────────────────────── */
.report-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:#fff;border:1px solid var(--border);border-radius:4px;padding:1.1rem;text-decoration:none;color:var(--text-primary);transition:all .12s;box-shadow:var(--shadow)}
.report-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.report-icon{width:46px;height:46px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1.25rem}
.report-title{font-size:1.05rem;font-weight:700}
.report-desc{font-size:.88rem;color:var(--text-muted)}
.pl-row{display:flex;justify-content:space-between;padding:.65rem 1.15rem;border-bottom:1px solid var(--border);font-size:1rem}
.pl-row.total-row{font-size:1.15rem;font-weight:800;background:var(--bg-table-head)}

.empty-state{text-align:center;padding:2.8rem 1.1rem;color:var(--text-muted)}
.empty-state i{font-size:2.8rem;display:block;margin-bottom:.5rem}

/* ── Keyboard overlay ────────────────────────── */
.kbd-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:10000;display:flex;align-items:center;justify-content:center}
.kbd-overlay-box{background:#fff;border-radius:8px;padding:1.65rem;max-width:560px;width:92%;box-shadow:0 16px 64px rgba(0,0,0,.4)}
.kbd-overlay-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin-bottom:1.15rem;padding-bottom:.55rem;border-bottom:1px solid var(--border)}
.kbd-list{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .95rem}
.kbd-row{display:flex;align-items:center;justify-content:space-between;font-size:.95rem;padding:.25rem 0}
.kbd-row span{color:var(--text-secondary)}
kbd{display:inline-flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px solid #bbb;border-bottom:2px solid #999;border-radius:3px;padding:.18rem .55rem;font-size:.82rem;font-family:Consolas,monospace;color:#222;min-width:48px;font-weight:600}

/* ── Print ───────────────────────────────────── */
@media print{
  .no-print,.app-topbar,.app-menubar,.page-header-bar,.erp-action-bar{display:none!important}
  .main-wrapper{margin-top:0!important}
  .page-content{padding:0!important;margin:0}
  body{background:#fff;font-size:11.5px}
  .invoice-print-wrap{border:1.5px solid #555;max-width:100%;box-shadow:none;margin:0}
  .btn-row-remove{display:none}
  @page{margin:.4in;size:A4}
}

@media(max-width:768px){
  .app-menubar .menu-item span:not(.menu-kbd){display:none}
  .topbar-quick .tbq-btn .tbq-label{display:none}
  .page-content{padding:.6rem}
  .erp-float-dd{min-width:90vw}
}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:6px}
::-webkit-scrollbar-track{background:transparent}

/* ════════════════════════════════════════════════════════════
   ── MULTI-DROPDOWN HEADER MENU (Professional ERP style) ──
   ════════════════════════════════════════════════════════════ */

/* The menubar now contains menu-group containers with dropdowns */
.menu-group{position:relative;height:var(--menubar-h);display:flex;align-items:center}
.menu-group:first-child .menu-toggle{border-left:1px solid var(--border)}
.menu-toggle{
  display:flex;align-items:center;gap:5px;
  padding:0 .85rem;height:var(--menubar-h);
  font-size:.9rem;font-weight:600;color:var(--text-secondary);
  background:none;border:none;border-right:1px solid var(--border);
  cursor:pointer;white-space:nowrap;transition:background .1s;
  font-family:inherit;
}
.menu-toggle i.menu-icon{font-size:1rem}
.menu-toggle:hover,.menu-group.open .menu-toggle{background:var(--primary-light);color:var(--primary)}
.menu-group.open .menu-toggle{font-weight:700;box-shadow:inset 0 -2px 0 var(--primary)}
.menu-toggle .menu-kbd{font-size:.7rem;opacity:.55;margin-left:2px;font-weight:400;background:#eef1f7;padding:1px 4px;border-radius:2px}
.menu-toggle .menu-arrow{font-size:.6rem;opacity:.5;margin-left:2px}

.menu-active-route .menu-toggle{color:var(--primary);font-weight:700;background:var(--primary-light)}

/* Dropdown panel */
.menu-dropdown{
  position:absolute;top:100%;left:0;
  background:#fff;border:1px solid var(--border);
  border-radius:0 0 4px 4px;
  min-width:240px;padding:.3rem 0;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  display:none;z-index:998;
}
.menu-group.open .menu-dropdown{display:block}
.menu-dropdown a, .menu-dropdown button{
  display:flex;align-items:center;gap:8px;
  padding:.45rem .85rem;font-size:.9rem;
  color:var(--text-primary);text-decoration:none;
  cursor:pointer;border:none;background:none;
  width:100%;text-align:left;font-family:inherit;
  border-radius:0;
}
.menu-dropdown a:hover, .menu-dropdown button:hover,
.menu-dropdown .dd-active{background:var(--primary-light);color:var(--primary)}
.menu-dropdown .dd-divider{height:1px;background:var(--border);margin:.3rem 0}
.menu-dropdown .dd-header{font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;padding:.25rem .85rem;letter-spacing:.05em}
.menu-dropdown i{font-size:1rem;width:18px;flex-shrink:0;text-align:center}
.menu-dropdown .dd-kbd{margin-left:auto;font-size:.72rem;color:var(--text-muted);background:#f0f3f8;padding:1px 5px;border-radius:2px;font-family:Consolas,monospace}

/* Profile dropdown (right side) */
.profile-btn{
  height:30px;display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);
  color:#fff;padding:.2rem .7rem;border-radius:20px;cursor:pointer;
  font-size:.86rem;font-weight:600;transition:all .12s;
}
.profile-btn:hover{background:rgba(255,255,255,.28)}
.profile-btn .profile-avatar{
  width:24px;height:24px;border-radius:50%;background:#fff;
  color:var(--primary);font-weight:800;font-size:.78rem;
  display:flex;align-items:center;justify-content:center;
}
.profile-btn .profile-arrow{font-size:.65rem;opacity:.7}
.profile-dropdown{
  position:absolute;top:calc(100% + 4px);right:0;
  background:#fff;border:1px solid var(--border);
  border-radius:4px;min-width:260px;padding:.4rem 0;
  box-shadow:0 12px 36px rgba(0,0,0,.2);
  display:none;z-index:1100;
}
.profile-wrap.open .profile-dropdown{display:block}
.profile-wrap{position:relative}
.profile-dd-header{padding:.65rem .85rem;border-bottom:1px solid var(--border)}
.profile-dd-header .pdh-name{font-weight:700;color:var(--text-primary);font-size:.95rem}
.profile-dd-header .pdh-role{font-size:.78rem;color:var(--text-muted)}
.profile-dropdown a, .profile-dropdown button{
  display:flex;align-items:center;gap:9px;
  padding:.55rem .85rem;font-size:.9rem;
  color:var(--text-primary);text-decoration:none;
  cursor:pointer;border:none;background:none;
  width:100%;text-align:left;font-family:inherit;
}
.profile-dropdown a:hover, .profile-dropdown button:hover{background:var(--primary-light);color:var(--primary)}
.profile-dropdown .pdd-divider{height:1px;background:var(--border);margin:.3rem 0}
.profile-dropdown .pdd-logout{color:var(--danger)}
.profile-dropdown .pdd-logout:hover{background:var(--danger-light);color:var(--danger)}

/* Profile page tabs */
.profile-tabs{display:flex;gap:0;background:#fff;border:1px solid var(--border);border-radius:4px;padding:0;margin-bottom:.7rem;overflow-x:auto;box-shadow:var(--shadow)}
.profile-tab{padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;color:var(--text-muted);text-decoration:none;border-right:1px solid var(--border);white-space:nowrap;transition:all .1s;display:flex;align-items:center}
.profile-tab:last-child{border-right:none}
.profile-tab:hover{background:var(--primary-light);color:var(--primary)}
.profile-tab.active{background:var(--primary);color:#fff;font-weight:700}

/* Permissions grid */
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.4rem .65rem;background:#fff;padding:.5rem;border:1px solid var(--border);border-radius:4px}
.perm-item{display:flex;align-items:center;gap:7px;padding:.4rem .65rem;font-size:.88rem;background:#f8f9fc;border:1px solid #e0e5ec;border-radius:3px;cursor:pointer;user-select:none}
.perm-item input{width:16px;height:16px;cursor:pointer;accent-color:var(--primary)}

/* For small screens, menu items collapse */
@media(max-width:900px){
  .menu-toggle .menu-kbd, .menu-dropdown .dd-kbd{display:none}
}

/* ════════════════════════════════════════════════════════════
   ── MENUS INSIDE TOPBAR (single-bar layout) ──
   Overrides menubar-styled menus when they live inside .app-topbar
   ════════════════════════════════════════════════════════════ */

.topbar-menus{
  display:flex;align-items:center;gap:0;flex:1;
  margin-left:.65rem;padding-left:.5rem;
  border-left:1px solid rgba(255,255,255,.18);
  height:100%;
}

/* Menu groups inside topbar */
.app-topbar .menu-group{
  position:relative;height:100%;display:flex;align-items:center;
}
.app-topbar .menu-toggle{
  display:flex;align-items:center;gap:6px;
  padding:0 .9rem;height:100%;
  font-size:.86rem;font-weight:600;
  color:#fff;background:transparent;
  border:none;cursor:pointer;white-space:nowrap;
  font-family:inherit;text-decoration:none;
  transition:background .12s;border-radius:0;
  line-height:1;
}
.app-topbar .menu-toggle:hover,
.app-topbar .menu-group.open .menu-toggle{
  background:rgba(255,255,255,.18);
  color:#fff;
  box-shadow:inset 0 -3px 0 #fff;
  font-weight:700;
}
.app-topbar .menu-active-route .menu-toggle{
  background:rgba(255,255,255,.14);
  box-shadow:inset 0 -3px 0 #fff;
  font-weight:700;
}
.app-topbar .menu-toggle .menu-icon{font-size:1rem;opacity:.95}
.app-topbar .menu-toggle .menu-kbd{
  font-size:.66rem;opacity:.65;font-weight:400;
  background:rgba(0,0,0,.18);padding:1px 5px;border-radius:2px;
}
.app-topbar .menu-toggle .menu-arrow{
  font-size:.58rem;opacity:.7;margin-left:1px;
}

/* Dropdown panel — appears below topbar (white background, blue accents) */
.app-topbar .menu-dropdown{
  position:absolute;top:100%;left:0;
  background:#fff;border:1px solid var(--border);
  border-top:3px solid var(--primary);
  border-radius:0 0 4px 4px;
  min-width:260px;padding:.3rem 0;
  box-shadow:0 8px 24px rgba(0,0,0,.2);
  display:none;z-index:1500;
}
.app-topbar .menu-group.open .menu-dropdown{display:block}
.app-topbar .menu-dropdown a,
.app-topbar .menu-dropdown button{
  display:flex;align-items:center;gap:9px;
  padding:.5rem .9rem;font-size:.9rem;
  color:var(--text-primary);text-decoration:none;
  cursor:pointer;border:none;background:none;
  width:100%;text-align:left;font-family:inherit;
}
.app-topbar .menu-dropdown a:hover,
.app-topbar .menu-dropdown button:hover,
.app-topbar .menu-dropdown .dd-active{
  background:var(--primary-light);
  color:var(--primary);
}
.app-topbar .menu-dropdown .dd-divider{height:1px;background:var(--border);margin:.3rem 0}
.app-topbar .menu-dropdown i{font-size:1rem;width:18px;flex-shrink:0;text-align:center}
.app-topbar .menu-dropdown .dd-kbd{
  margin-left:auto;font-size:.72rem;color:var(--text-muted);
  background:#f0f3f8;padding:1px 6px;border-radius:2px;
  font-family:Consolas,monospace;
}

/* Hide the old separate menubar entirely (in case it's referenced anywhere) */
.app-menubar{display:none !important}

/* Responsive */
@media(max-width:900px){
  .app-topbar .menu-toggle .menu-kbd, 
  .app-topbar .menu-dropdown .dd-kbd{display:none}
  .app-brand .app-brand-sub{display:none}
}
@media(max-width:680px){
  .app-topbar .menu-toggle{padding:0 .55rem;font-size:.78rem}
}

/* ════════════════════════════════════════════════════════════
   ── RESPONSIVE / MOBILE — Hamburger menu + mobile layout ──
   ════════════════════════════════════════════════════════════ */

/* Hamburger button - hidden on desktop */
.mobile-toggle-btn{
  display:none;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.3);
  color:#fff;
  width:36px;height:30px;
  border-radius:3px;
  align-items:center;justify-content:center;
  margin-left:auto;
  cursor:pointer;
  font-size:1.25rem;
  padding:0;
  transition:background .15s;
  flex-shrink:0;
}
.mobile-toggle-btn:hover{background:rgba(255,255,255,.28)}
.mobile-toggle-btn.is-open{background:rgba(255,255,255,.35)}
.mobile-toggle-btn.is-open i::before{content:"\F62A"}  /* close X icon */

/* ═══ Mobile breakpoint: collapse menus into hamburger ═══ */
@media(max-width:900px){
  /* Show hamburger, position it before profile */
  .mobile-toggle-btn{display:inline-flex;order:5;margin-left:auto;margin-right:.4rem}
  
  /* Brand more compact */
  .app-brand{font-size:.92rem;padding-right:.5rem;margin-right:0;flex:0 0 auto}
  .app-brand i{font-size:1.15rem}
  .app-brand-sub{display:none}
  
  /* Menus become a slide-down panel */
  .topbar-menus{
    position:fixed;
    top:var(--topbar-h);
    left:0;right:0;
    background:var(--primary-dark);
    flex-direction:column;
    padding:0;margin:0;
    border:none;border-top:1px solid rgba(255,255,255,.18);
    max-height:calc(100vh - var(--topbar-h));
    overflow-y:auto;
    transform:translateY(-110%);
    transition:transform .25s ease;
    z-index:999;
    box-shadow:0 8px 24px rgba(0,0,0,.4);
  }
  .topbar-menus.mobile-open{transform:translateY(0)}
  
  /* Each menu group stacks vertically full-width */
  .app-topbar .menu-group{
    width:100%;height:auto;display:block;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .app-topbar .menu-toggle{
    width:100%;height:auto;
    padding:.85rem 1.2rem;
    justify-content:flex-start;
    gap:10px;
    border-radius:0;
    border:none;
    font-size:.92rem;
  }
  .app-topbar .menu-toggle:hover,
  .app-topbar .menu-group.open .menu-toggle{
    box-shadow:none;
    background:rgba(0,0,0,.25);
  }
  .app-topbar .menu-toggle .menu-arrow{margin-left:auto}
  .app-topbar .menu-toggle .menu-kbd{display:none}
  
  /* Dropdown becomes inline accordion */
  .app-topbar .menu-dropdown{
    position:static;display:none;
    background:rgba(0,0,0,.2);
    border:none;border-top:none;border-radius:0;
    min-width:auto;width:100%;
    padding:.2rem 0;margin:0;
    box-shadow:none;
  }
  .app-topbar .menu-group.open .menu-dropdown{display:block}
  .app-topbar .menu-dropdown a,
  .app-topbar .menu-dropdown button{
    padding:.7rem 1.2rem .7rem 3rem;
    color:rgba(255,255,255,.92);
    font-size:.88rem;
    border-bottom:1px solid rgba(255,255,255,.05);
  }
  .app-topbar .menu-dropdown a:hover,
  .app-topbar .menu-dropdown button:hover,
  .app-topbar .menu-dropdown .dd-active{
    background:rgba(255,255,255,.12);
    color:#fff;
  }
  .app-topbar .menu-dropdown i{color:rgba(255,255,255,.85)}
  .app-topbar .menu-dropdown .dd-kbd{display:none}
  .app-topbar .menu-dropdown .dd-divider{background:rgba(255,255,255,.15)}

  /* Profile button compact (avatar only) */
  .profile-btn > div:not(.profile-avatar){display:none}
  .profile-btn{padding:.2rem .35rem;gap:4px}
  .profile-btn .profile-arrow{font-size:.55rem}
  .profile-wrap{order:6}
  .profile-dropdown{right:0;min-width:240px}

  /* Page content gets less padding */
  .page-content{padding:.6rem .55rem}
  .page-header-bar{flex-wrap:wrap;gap:.5rem}
  .page-header-bar h5{font-size:.95rem}
  .page-header-bar .d-flex{flex-wrap:wrap}
  
  /* Stat cards stack on small screens */
  .stat-card{padding:.55rem .65rem}
  .stat-value{font-size:1.05rem}
  .stat-icon{width:34px;height:34px;font-size:.95rem}

  /* Profile tabs scroll horizontally */
  .profile-tabs{font-size:.85rem}
  .profile-tab{padding:.5rem .8rem;font-size:.85rem}

  /* Card boxes get less padding */
  .card-box{padding:.6rem .7rem}
  
  /* Buttons can wrap */
  .btn{font-size:.82rem;padding:.3rem .65rem}
  
  /* Tables become scrollable horizontally via .table-responsive */
  .table{font-size:.82rem}
  .table th,.table td{padding:.3rem .4rem;white-space:nowrap}
  
  /* ERP grid: keep horizontal scroll */
  .erp-grid-scroll{-webkit-overflow-scrolling:touch}
  .erp-grid{font-size:.82rem;min-width:920px}
  
  /* ERP totals row wraps */
  .erp-totals-row{justify-content:flex-start;gap:.4rem}
  .erp-total-item{font-size:.8rem}
  .tot-input{width:90px!important}
  .erp-grand-total{font-size:1.15rem;min-width:0;width:100%;text-align:right;margin-left:0;margin-top:.3rem}
  .erp-grand-label{display:block;width:100%;text-align:right}
  
  /* ERP header fields wrap */
  .erp-header .row > .col-md-3,
  .erp-header .row > .col-md-4,
  .erp-header .row > .col-md-2,
  .erp-header .row > .col-md-6{flex:0 0 50%;max-width:50%}
  
  /* Floating product dropdown adapts to width */
  .erp-float-dd{min-width:90vw!important;max-width:96vw}
  .erp-float-dd.dd-batch{min-width:90vw!important}
  
  /* Permission grid */
  .perm-grid{grid-template-columns:1fr}
  
  /* Quick actions stack */
  .quick-actions{grid-template-columns:1fr}
}

/* ═══ Very small phones ═══ */
@media(max-width:480px){
  html{font-size:14px}
  .app-brand{font-size:.85rem}
  .app-brand > div > div:first-child{font-size:.85rem}
  .topbar-menus{font-size:.85rem}
  
  /* Stack form rows */
  .erp-header .row > [class*="col-"]{flex:0 0 100%;max-width:100%}
  
  /* Stat cards single column */
  .stat-card{font-size:.85rem}
  .stat-value{font-size:.95rem}
  
  /* Modals/overlays fit */
  .kbd-overlay-box{padding:1rem}
  .kbd-list{grid-template-columns:1fr}
  
  /* Invoice print preview adapts */
  .invoice-print-wrap{font-size:10.5px}
  .inv-letterhead{grid-template-columns:44px 1fr;gap:.6rem}
  .inv-title-block{grid-column:1 / -1;text-align:left;margin-top:.4rem}
  .inv-meta-box{min-width:0;width:100%}
  .inv-company-name{font-size:1.1rem}
  .inv-parties{grid-template-columns:1fr}
  .inv-party + .inv-party{border-left:none;border-top:1px solid var(--iv-line)}
  .inv-summary-section{grid-template-columns:1fr}
  .inv-tax-col{border-right:none;border-bottom:1px solid var(--iv-line-strong)}
  .inv-footer-section{grid-template-columns:1fr}
  .inv-terms{border-right:none;border-bottom:1px solid var(--iv-line)}
  .inv-sign-for{margin-bottom:1.2rem}
}

/* ═══ Landscape phones / very small tablets ═══ */
@media(max-width:380px){
  .app-brand > div > div:first-child{font-size:.78rem}
  .app-topbar{padding:0 .35rem;gap:5px}
  .mobile-toggle-btn{width:30px;height:26px;font-size:1rem}
}

/* ═══ Touch-friendly on touch devices ═══ */
@media(hover:none){
  .btn,.cell-input,.menu-toggle,.profile-btn,.tbq-btn{
    min-height:36px;  /* easier tap targets */
  }
  .btn-row-remove{font-size:1.15rem;padding:.25rem .4rem}
  .dd-item{padding:.5rem .4rem}
}
/* ══════════════════════════════════════════════════════════════
   MOBILE NAVBAR FIX — Append this to the END of assets/css/app.css
   ══════════════════════════════════════════════════════════════
   Uses !important + high specificity to guarantee mobile rules
   win over any earlier desktop rules. Also adds backdrop +
   ensures dropdowns are properly contained inside the slide-down
   panel (the previous version had dropdowns escaping with
   position:absolute).
   ══════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {

  /* ── Menu panel ── slides down from below topbar ── */
  body .app-topbar .topbar-menus {
    position: fixed !important;
    top: var(--topbar-h) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: calc(100vh - var(--topbar-h)) !important;
    background: var(--primary-dark) !important;
    flex-direction: column !important;
    display: none !important;        /* hidden by default */
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-top: 1px solid rgba(255,255,255,.2) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 1500 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.4) !important;
  }

  body .app-topbar .topbar-menus.mobile-open {
    display: flex !important;        /* shown when toggled */
  }

  /* ── Each menu group becomes a full-width row ── */
  body .app-topbar .menu-group {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
  }

  body .app-topbar .menu-toggle {
    width: 100% !important;
    height: auto !important;
    padding: .9rem 1.2rem !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    border-radius: 0 !important;
    border: none !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .95rem !important;
    box-shadow: none !important;
  }
  body .app-topbar .menu-toggle:hover,
  body .app-topbar .menu-group.open .menu-toggle {
    background: rgba(0,0,0,.25) !important;
    box-shadow: none !important;
  }
  body .app-topbar .menu-toggle .menu-arrow { margin-left: auto !important; }
  body .app-topbar .menu-toggle .menu-kbd   { display: none !important; }

  /* ── Dropdown becomes inline accordion (no longer position:absolute) ── */
  body .app-topbar .menu-dropdown {
    position: static !important;
    top: auto !important;
    left: auto !important;
    display: none !important;
    background: rgba(0,0,0,.25) !important;
    border: none !important;
    border-top: none !important;
    border-radius: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    padding: .2rem 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    z-index: auto !important;
  }
  body .app-topbar .menu-group.open .menu-dropdown {
    display: block !important;
  }
  body .app-topbar .menu-dropdown a,
  body .app-topbar .menu-dropdown button {
    padding: .75rem 1.2rem .75rem 3rem !important;
    color: rgba(255,255,255,.92) !important;
    background: transparent !important;
    font-size: .9rem !important;
    border-bottom: 1px solid rgba(255,255,255,.05) !important;
  }
  body .app-topbar .menu-dropdown a:hover,
  body .app-topbar .menu-dropdown button:hover,
  body .app-topbar .menu-dropdown .dd-active {
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
  }
  body .app-topbar .menu-dropdown i {
    color: rgba(255,255,255,.85) !important;
  }
  body .app-topbar .menu-dropdown .dd-kbd     { display: none !important; }
  body .app-topbar .menu-dropdown .dd-divider { background: rgba(255,255,255,.15) !important; }
}

/* ═══ v7 additions ═══ */
.ac-dropdown{position:absolute;z-index:2000;background:#fff;border:1px solid #c5d3e8;border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.15);max-height:320px;overflow:auto;display:none;font-size:.84rem}
.ac-dropdown.show{display:block}
.ac-item{padding:.42rem .65rem;cursor:pointer;border-bottom:1px solid #f0f3f8}
.ac-item.active,.ac-item:hover{background:#e3efff}
.ac-item .ac-sub{font-size:.74rem;color:#6b7a90}
.ac-add{color:#1565c0;font-weight:600;background:#fffde7}
.ac-empty{padding:.5rem .65rem;color:#8a97ab;font-style:italic}
.party-card{background:#f5f9ff;border:1px solid #c9dcf5;border-radius:4px;padding:.45rem .7rem;font-size:.8rem;line-height:1.45}
.party-card .pc-name{font-weight:700;font-size:.92rem;color:#0d47a1}
.party-card .pc-bal{font-weight:700}
.sale-type-switch .btn{min-width:130px}
.pdd-btn{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:0;padding:.45rem .9rem;font-size:.85rem;color:inherit;text-align:left}
.pdd-btn:hover{background:#f0f3f8}
.pdd-kbd{margin-left:auto;font-size:.72rem;color:#888;background:#f0f3f8;padding:1px 5px;border-radius:2px;font-family:Consolas,monospace}
.badge-retail{background:#2e7d32}.badge-wholesale{background:#6a1b9a}
.btn-kbd{font-size:.68rem;opacity:.75;margin-left:.3rem;font-family:Consolas,monospace}
.perm-group{border:1px solid #e3e8f0;border-radius:4px;padding:.5rem .7rem;margin-bottom:.5rem}
.perm-group-title{font-size:.72rem;font-weight:700;text-transform:uppercase;color:#1565c0;margin-bottom:.3rem}
.stat-card.clickable{cursor:pointer}
@media (max-width:767px){.sale-type-switch .btn{min-width:0;flex:1}.erp-grid-scroll{overflow-x:auto}}
@media print{.ac-dropdown,.app-topbar,.kbd-overlay{display:none!important}}
.text-purple{color:#6a1b9a}.btn-purple{background:#6a1b9a;color:#fff;border-color:#6a1b9a}.btn-purple:hover{background:#4a148c;color:#fff}
.btn-outline-purple{color:#6a1b9a;border-color:#6a1b9a}.btn-outline-purple:hover{background:#6a1b9a;color:#fff}
.erp-float-dd .dd-item.dd-disabled{opacity:.45;cursor:not-allowed}
