/* Shared ERP presentation. Keep business-specific layouts and print output intact. */
:root { --workspace-surface:#fff; --workspace-text:#172b22; --workspace-muted:#61716a; --workspace-border:#dfe7e2; --workspace-accent:#056839; }
body.dark-mode, html[data-theme="dark"] { --workspace-surface:#16221c; --workspace-text:#e7efe9; --workspace-muted:#a7b9ae; --workspace-border:#30443a; --workspace-accent:#70d8a2; }
[hidden] { display:none !important; }
:where(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #139361; outline-offset:3px; }
.workspace-icon { width:42px; height:42px; border:1px solid var(--workspace-border); border-radius:10px; background:var(--workspace-surface); color:var(--workspace-text); cursor:pointer; font-size:22px; flex-shrink:0; }
.workspace-launcher-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:6px 10px; border:1px solid var(--workspace-border); border-radius:10px; background:var(--workspace-surface); color:var(--workspace-text); font:600 13px/1.3 system-ui,sans-serif; cursor:pointer; white-space:nowrap; }
.workspace-launcher-btn:hover { border-color:var(--workspace-accent); }
#workspace-launcher { position:fixed; inset:0; margin:auto; width:min(640px,calc(100% - 24px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--workspace-border); border-radius:20px; background:var(--workspace-surface); color:var(--workspace-text); box-shadow:0 24px 100px #0004; font:14px/1.5 system-ui,sans-serif; overflow:auto; }
#workspace-launcher::backdrop { background:#07181099; backdrop-filter:blur(3px); }
.workspace-dialog-header { display:flex; align-items:center; justify-content:space-between; padding:24px 24px 12px; }
.workspace-eyebrow { font-size:10px; font-weight:700; letter-spacing:.16em; color:var(--workspace-accent); margin:0 0 4px; }
.workspace-dialog-header h2 { font-size:24px; font-weight:700; margin:0; letter-spacing:-.03em; }
.workspace-search { padding:8px 24px 16px; }
.workspace-search label { display:block; font-size:12px; color:var(--workspace-muted); margin-bottom:6px; }
.workspace-search input { width:100%; min-width:0; font:inherit; font-size:16px; padding:12px 14px; border:1px solid var(--workspace-border); border-radius:12px; background:var(--workspace-surface); color:var(--workspace-text); }
.workspace-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:0 16px 16px; max-height:48dvh; overflow-y:auto; overscroll-behavior:contain; }
.workspace-links a { display:flex; flex-direction:column; padding:12px; border:1px solid transparent; border-radius:12px; text-decoration:none; color:inherit; }
.workspace-links a:hover, .workspace-links a[aria-current="page"] { background:#13936110; border-color:var(--workspace-border); }
.workspace-links span { font-size:14px; font-weight:650; }
.workspace-links small { color:var(--workspace-muted); font-size:12px; margin-top:3px; }
.workspace-dialog-footer { border-top:1px solid var(--workspace-border); padding:16px 24px; display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.workspace-dialog-footer > small { color:var(--workspace-muted); margin-left:auto; }
.workspace-density { display:flex; gap:4px; }
.workspace-density button { border:1px solid var(--workspace-border); border-radius:8px; padding:8px 10px; cursor:pointer; font:inherit; font-size:12px; color:var(--workspace-text); background:var(--workspace-surface); }
.workspace-density button[aria-pressed="true"] { border-color:var(--workspace-accent); color:var(--workspace-accent); background:#13936110; }
#workspace-no-results { padding:24px; color:var(--workspace-muted); text-align:center; }
.workspace-table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.workspace-skip { position:fixed; top:-100px; left:16px; padding:12px 18px; background:var(--workspace-surface); color:var(--workspace-text); border:2px solid var(--workspace-accent); z-index:20000; border-radius:8px; }
.workspace-skip:focus { top:12px; }
@media screen {
  body.erp-workspace { --bg-primary:#f5f7f6; --bg-secondary:#eff3f0; --card-bg:#fff; --modal-bg:#fff; --text-primary:#172b22; --text-secondary:#61716a; --border-color:#dfe7e2; --glass-blur:0px; --shadow-sm:0 1px 3px #152b2006; --shadow-md:0 4px 16px #152b2008; --fs-xs:.75rem; --fs-sm:.8125rem; --fs-base:.875rem; --radius:10px; --radius-lg:16px; background:var(--bg-primary); background-attachment:scroll; font-size:14px; line-height:1.5; }
  body.erp-workspace.dark-mode { --bg-primary:#101813; --bg-secondary:#1b2820; --card-bg:#16221c; --modal-bg:#16221c; --text-primary:#e7efe9; --text-secondary:#a7b9ae; --border-color:#30443a; }
  body.erp-workspace .topbar { min-height:68px; padding:10px 24px; border-radius:0; border-bottom:1px solid var(--border-color); background:var(--card-bg); box-shadow:0 1px 0 #172b2205; backdrop-filter:none; -webkit-backdrop-filter:none; gap:12px; }
  .erp-workspace .topbar-left, .erp-workspace .topbar-center, .erp-workspace .topbar-right { min-width:0; }
  .erp-workspace .company-name { font-size:1.05rem; letter-spacing:-.025em; }
  .erp-workspace .company-logo, .erp-workspace .company-logo-small { filter:none; }
  .erp-workspace .nav-btn, .erp-workspace .theme-toggle-btn { width:40px; height:40px; border:1px solid var(--border-color); border-radius:10px; }
  .erp-workspace > :is(.container,.main-content) { width:100%; max-width:none !important; margin-inline:0 !important; padding:12px 20px !important; min-width:0; }
  .erp-workspace :is(.card,.summary-card,.stat-card,.table-container,.tabs,.module-card,.filters,.profile-modal-content) { backdrop-filter:none; -webkit-backdrop-filter:none; border-color:var(--border-color); box-shadow:var(--shadow-sm); }
  .erp-workspace :is(.page-title,.section-title) { letter-spacing:-.025em; font-size:16px; }
  .erp-workspace :is(.page-header,.section-header) :is(h1,h2,h3) { font-size:18px; }
  .erp-workspace :is(.form-section,.tab-content) { padding:14px; }
  .erp-workspace :is(.form-grid,.form-row,.summary-grid,.stats-grid) { gap:12px; }
  .erp-workspace :is(.form-group,.form-section) { margin-bottom:12px; }
  .erp-workspace :is(.form-label,.form-group > label,.detail-label) { font-size:12px; }
  .erp-workspace :is(.btn,.form-control,.form-input,select,textarea) { font-size:14px; }
  .erp-workspace :is(.summary-card,.stat-card) { padding:14px; }
  .erp-workspace :is(.btn,.form-control,.form-input,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select) { min-height:40px; }
  .erp-workspace :is(.form-control,.form-input,input,select,textarea) { max-width:100%; }
  .erp-workspace :is(.table-header,.page-header,.section-header,.filters,.filter-bar,.action-buttons,.toolbar) { gap:8px; flex-wrap:wrap; }
  .erp-workspace :is(.table-header,.page-header) { padding:12px 16px; }
  .erp-workspace :is(.tab-header,.tabs-header,.tabs-nav) { overflow-x:auto; overscroll-behavior-x:contain; }
  .erp-workspace :is(.tab-btn,.tab-button) { flex-shrink:0; white-space:nowrap; min-height:44px; }
  .erp-workspace table { font-size:14px; font-variant-numeric:tabular-nums; }
  .erp-workspace :is(td,th) { padding:10px 12px; }
  .erp-workspace th { background:var(--bg-secondary); color:var(--text-secondary); font-size:12px; font-weight:650; letter-spacing:.035em; }
  .erp-workspace tbody tr:hover { background:#13936106; }
  .erp-workspace :is(.modal-content,.modal-dialog,.profile-modal-content) { max-width:calc(100vw - 24px); max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain; }
  .erp-workspace .welcome-section { padding:12px 0 6px; }
  .erp-workspace .welcome-title { font-size:clamp(22px,2.5vw,28px); letter-spacing:-.04em; color:var(--text-primary); background:none; -webkit-text-fill-color:currentColor; }
  .erp-workspace .welcome-subtitle { font-size:14px; margin-top:8px; }
  .erp-workspace .modules-grid { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; }
  .erp-workspace .module-card { text-align:left; padding:16px; border-radius:16px; min-width:0; }
  .erp-workspace .module-card:hover { transform:translateY(-2px); border-color:var(--accent); box-shadow:0 8px 24px #152b200c; }
  .erp-workspace .module-icon { margin:0 0 10px; width:42px; height:42px; }
  .erp-workspace .module-title { font-size:15px; margin-bottom:6px; }
  .erp-workspace .module-description { font-size:12px; line-height:1.6; }
  .erp-workspace .module-search-box { width:min(520px,100%); border-radius:12px; padding:8px 14px; }
  .erp-workspace .search-dropdown { width:min(520px,100%); }
  html[data-density="compact"] .erp-workspace :is(td,th) { padding:6px 10px; }
  html[data-density="compact"] .erp-workspace .module-card { padding:16px; }
  html[data-density="compact"] .erp-workspace .modules-grid { gap:10px; }
  .erp-admin { background:var(--paper,#f5f7f6); }
  .erp-admin main { min-width:0; }
  .erp-admin main > div { padding:12px 16px; }
  .erp-admin main :is(.text-sm,table,input,select,textarea) { font-size:14px; }
  .erp-admin main :is(.text-xl,.text-2xl) { font-size:20px; }
  .erp-admin main :is(td,th) { padding:10px 12px; }
  .erp-admin main .glass-card:is(.p-6,.p-8) { padding:16px; }
  .erp-admin main :is(.gap-6,.gap-8) { gap:12px; }
  .erp-admin main :is(.mb-6,.mb-8) { margin-bottom:14px; }
  .erp-admin :is(.glass,.glass-card) { background:var(--workspace-surface); border:1px solid var(--workspace-border); backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:0 2px 8px #152b2006; }
  .erp-admin .glass-card::before,.erp-admin .glass-card::after,.erp-admin .glass::after { display:none; }
  .erp-admin #admin-sidebar { background:#123c2a; background-image:none; height:100dvh; padding-bottom:env(safe-area-inset-bottom); }
  .erp-admin #admin-sidebar nav a { min-height:42px; }
  .erp-admin main > header { min-height:68px; }
  .erp-admin .glass-card:hover { transform:none; }
  .erp-admin :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,button) { min-height:40px; }
  html[data-density="compact"] .erp-admin :is(td,th) { padding-top:8px; padding-bottom:8px; }
}
@media screen and (min-width:901px) {
  .erp-workspace :is(.btn,.form-control,.form-input,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select) { min-height:38px; }
  .erp-workspace .btn { padding:6px 10px; }
  .erp-workspace :is(.tab-btn,.tab-button) { min-height:36px; padding:8px 14px; font-size:13px; }
  .erp-admin main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,button) { min-height:38px; }
}
@media screen and (max-width:900px) {
  .erp-workspace .topbar { padding:8px 14px; gap:8px; }
  .erp-workspace .topbar-left,.erp-workspace .topbar-right { flex:0 0 auto; }
  .erp-workspace .topbar-center { flex:1; }
  .erp-workspace .username-text { display:none; }
  .erp-workspace .company-name { max-width:24vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .erp-workspace .nav-controls > [onclick="history.forward()"] { display:none; }
  .erp-workspace :is(.form-grid,.form-row,.summary-grid,.stats-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .erp-workspace .tab-content { padding:18px; }
}
@media screen and (max-width:600px) {
  .erp-workspace > :is(.container,.main-content) { padding:16px !important; }
  .workspace-launcher-btn .workspace-button-label { display:none; }
  .workspace-launcher-btn { width:40px; padding:8px; }
  .workspace-links { grid-template-columns:minmax(0,1fr); }
  .workspace-dialog-header { padding:18px 18px 8px; }
  .workspace-search { padding:8px 18px 16px; }
  .erp-workspace .company-name { display:none; }
  .erp-workspace .topbar .page-title { font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .erp-workspace :is(.form-grid,.form-row) { grid-template-columns:minmax(0,1fr); }
  .erp-workspace :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { font-size:16px; min-width:0; }
  .erp-workspace :is(.btn,.nav-btn,.theme-toggle-btn) { min-height:44px; }
  .erp-workspace .modules-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .erp-workspace .module-card { padding:16px 12px; }
  .erp-workspace .module-title { font-size:14px; }
  .erp-workspace .module-description { font-size:12px; }
  .erp-workspace :is(.filters input,.filters select,.filter-bar input,.filter-bar select) { max-width:100%; flex:1 1 130px; }
  .erp-workspace :is(.table-header,.page-header) { padding:14px; }
  .erp-workspace .tab-content { padding:12px; }
  .erp-admin main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }
@media print { .workspace-launcher-btn,#workspace-launcher,.workspace-skip { display:none !important; } .workspace-table-scroll { overflow:visible; } }
@media screen {
  .erp-workspace .tabs:has(> .tab) { overflow-x:auto; overscroll-behavior-x:contain; }
  .erp-workspace .tabs > .tab { flex:0 0 auto; white-space:nowrap; min-height:42px; }
}
@media screen and (max-width:900px) { .erp-workspace .topbar-left > .page-title { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }
@media screen and (max-width:600px) { .erp-workspace .topbar-left > .page-title { display:none; } }

.erp-workspace .user-profile.is-open .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.erp-workspace .user-avatar { cursor:pointer; }
/* Order pages: readable type, deliberate grouping, and efficient spacing. */
@media screen {
  .erp-workspace.order-detail-view > .container { padding:16px 20px !important; }
  .order-detail-view .order-container { border-radius:14px; }
  .order-detail-view .order-header { padding:18px 22px; gap:16px; flex-wrap:wrap; align-items:center; }
  .order-detail-view .order-info h1 { font-size:25px; line-height:1.2; margin-bottom:6px; }
  .order-detail-view .order-meta { font-size:14px; gap:12px; flex-wrap:wrap; align-items:center; }
  .order-detail-view .mini-stepper { margin-top:10px; flex-wrap:wrap; }
  .order-detail-view .mini-label { font-size:12px; text-transform:none; }
  .order-detail-view .mini-dot { width:22px; height:22px; }
  .order-detail-view .action-buttons { gap:8px; }
  .order-detail-view .action-buttons .btn { font-size:14px; min-width:40px; min-height:40px; padding:8px 12px; }
  .order-detail-view .order-body { padding:20px 22px; }
  .order-detail-view .details-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px 28px; margin-bottom:18px; }
  .order-detail-view .detail-group { gap:5px; min-width:0; }
  .order-detail-view .detail-label { font-size:12px; font-weight:600; text-transform:none; letter-spacing:.01em; }
  .order-detail-view .detail-value { font-size:15px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
  .order-detail-view .order-extra-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; padding:16px 0; margin-bottom:18px; border-top:1px solid var(--border-color); border-bottom:1px solid var(--border-color); }
  .order-detail-view .badge { font-size:12px; padding:4px 10px; }
  .order-detail-view .section-title { font-size:17px; margin-bottom:10px; }
  .order-detail-view table { font-size:14px; margin-bottom:16px; }
  .order-detail-view :is(th,td) { padding:12px; }
  .order-detail-view th { font-size:12px; }
  .order-detail-view .total-section { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; max-width:none; padding:16px 20px; border-radius:10px; }
  .order-detail-view .total-row { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; font-size:14px; padding:0; gap:4px; }
  .order-detail-view .total-row > span:first-child { color:var(--text-secondary); font-size:13px; }
  .order-detail-view .total-row > span:last-child { font-size:17px; font-weight:600; font-variant-numeric:tabular-nums; }
  .order-detail-view .total-row.grand-total { border-top:0; border-left:1px solid var(--border-color); padding:0 0 0 20px; margin:0; }
  .order-detail-view .total-row.grand-total > span:last-child { font-size:22px; font-weight:750; }

  .order-editor .order-hero { padding:14px 18px; margin-bottom:12px; border-radius:12px; }
  .order-editor .order-eyebrow { font-size:12px; text-transform:none; letter-spacing:0; }
  .order-editor .workflow-bar { padding:12px 18px; margin-bottom:12px; border-radius:12px; }
  .order-editor .page-tabs { margin-bottom:12px; }
  .order-editor :is(.page-tab,.step-label) { font-size:13px; text-transform:none; letter-spacing:0; }
  .order-editor .section-panel { padding:16px 18px; margin-bottom:12px; border-radius:12px; min-width:0; }
  .order-editor .section-heading { margin-bottom:12px; padding-bottom:10px; flex-wrap:wrap; }
  .order-editor .section-title { font-size:17px; }
  .order-editor .section-hint { font-size:12px; }
  .order-editor #orderForm .form-group { margin-bottom:0; }
  .order-editor #orderForm label { font-size:12px; font-weight:600; text-transform:none; letter-spacing:0; margin-bottom:5px; }
  .order-editor #orderForm :is(input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),select,textarea) { font-size:14px; min-height:40px; padding-top:8px; padding-bottom:8px; border-radius:8px; }
  .order-editor #orderForm textarea { resize:vertical; }
  .order-editor #orderForm input[type="radio"] { width:16px; height:16px; min-height:16px; padding:0; }
  .order-editor .gst-rate-select { font-size:12px !important; height:28px; }
  .order-editor .items-table { min-width:760px; border-spacing:0 4px; }
  .order-editor .items-table th { font-size:12px; letter-spacing:0; text-transform:none; }
  .order-editor .items-table td { padding:8px; }
  .order-editor :is(.notes-card,.total-box) { padding:16px 18px; border-radius:12px; }
  .order-editor .total-box { gap:12px; }
  .order-editor .total-box-title { font-size:16px; }
  .order-editor .total-row { font-size:14px; gap:12px; }
  .order-editor .grand-total { font-size:20px; }
  .order-editor .form-actions { margin-top:12px; padding:10px 14px; }
  .order-editor .form-actions .btn { font-size:14px; min-height:40px; }
}
@media screen and (min-width:1200px) {
  .order-editor .form-card:has(> .workflow-bar) { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:12px; }
  .order-editor .workflow-bar { margin:0 0 12px; }
  .order-editor .page-tabs { align-items:center; }
  .order-editor :is(#detailsTabContent,#invoiceTabContent) { grid-column:1 / -1; min-width:0; }
  .order-editor #orderForm { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:12px 16px; align-items:start; }
  .order-editor #orderForm > .order-hero { grid-column:1 / -1; margin:0; }
  .order-editor #orderForm > .section-panel { grid-column:1; margin:0; }
  .order-editor .order-summary-grid { grid-column:2; grid-row:2 / span 2; display:flex; flex-direction:column; gap:12px; min-width:0; }
  .order-editor .total-box { order:-1; }
  .order-editor .form-actions { grid-column:1 / -1; margin-top:0; }
}
@media screen and (max-width:900px) {
  .order-detail-view .details-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .order-detail-view .total-section { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .order-editor #orderForm .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .order-editor .stepper { flex-wrap:wrap; row-gap:10px; }
}
@media screen and (max-width:640px) {
  .erp-workspace.order-detail-view > .container { padding:12px !important; }
  .order-detail-view .order-header,.order-detail-view .order-body { padding:16px; }
  .order-detail-view .order-extra-details { grid-template-columns:minmax(0,1fr); gap:14px; }
  .order-detail-view .total-section { gap:16px; padding:14px; }
  .order-detail-view .total-row.grand-total { border-left:0; padding:0; }
  .order-editor #orderForm .form-grid { grid-template-columns:minmax(0,1fr); }
  .order-editor #orderForm :is(input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),select,textarea) { font-size:16px; min-height:44px; }
  .order-editor .form-actions .btn { min-height:44px; }
  .order-editor .section-panel { padding:14px; }
  .order-editor .step-line { width:16px; margin:0 6px; }
  .order-editor .step { gap:6px; }
}
@media screen and (max-width:600px) { .erp-admin main button.whitespace-nowrap { white-space:normal; max-width:100%; } }

/* Inventory product editor: use desktop width and keep actions in view. */
@media screen {
  #productModal .modal-content { width:min(1120px,calc(100vw - 32px)); max-width:1120px; max-height:calc(100dvh - 32px); display:flex; flex-direction:column; overflow:hidden; }
  #productModal .modal-header { padding:14px 20px; border-bottom-width:1px; flex-shrink:0; }
  #productModal .modal-body { padding:16px 20px; overflow-y:auto; min-height:0; overscroll-behavior:contain; }
  #productModal .modal-footer { padding:12px 20px; border-top-width:1px; flex-shrink:0; }
  #productModal .form-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 16px; align-items:start; }
  #productModal .form-group { min-width:0; margin-bottom:0; }
  #productModal .form-group.full-width { grid-column:span 2; }
  #productModal .form-group:has(#productPriceIncludesTax),#productModal .form-group:has(#productShowOnStore) { grid-column:span 3; }
  #productModal .form-group:has(#productBarcode) { grid-column:span 2; }
  #productModal .form-group label { font-size:12px; margin-bottom:5px; }
  #productModal .form-group :is(input:not([type="checkbox"]),select,textarea) { min-width:0; width:100%; min-height:40px; padding:8px 10px; border-width:1px; font-size:14px; }
  #productModal .form-group textarea { min-height:64px; height:64px; resize:vertical; }
  #productModal .form-group .btn { padding:8px 12px !important; min-height:40px; flex-shrink:0; }
  #productModal :is(.modal-footer .btn,.close-btn) { min-height:40px; }
  #productModal :is(.tax-toggle-copy small,#productTypeHelp,.product-field-hint) { font-size:12px; line-height:1.4; }
  #productModal .tax-toggle-row { padding:10px 12px; margin-bottom:0; }
  #productModal .product-field-hint { display:block; margin-top:4px; color:var(--text-secondary); }
}
@media screen and (max-width:1000px) {
  #productModal .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #productModal .form-group:has(#productPriceIncludesTax),#productModal .form-group:has(#productShowOnStore) { grid-column:1 / -1; }
}
@media screen and (max-width:600px) {
  #productModal .modal-content { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
  #productModal :is(.modal-header,.modal-body,.modal-footer) { padding:12px 14px; }
  #productModal .form-grid { grid-template-columns:minmax(0,1fr); }
  #productModal .form-grid > .form-group { grid-column:1 / -1; }
  #productModal .form-group :is(input:not([type="checkbox"]),select,textarea) { font-size:16px; min-height:44px; }
  #productModal :is(.modal-footer .btn,.close-btn) { min-height:44px; }
}

.branch-selector { position:relative; min-width:0; }
.branch-selector > summary { display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; border:1px solid var(--border-color); border-radius:10px; padding:8px 10px; min-height:40px; color:var(--text-primary); background:var(--card-bg); font-size:13px; }
.branch-selector > summary::-webkit-details-marker { display:none; }
#branchSelectionLabel { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.branch-selector-panel { position:absolute; right:0; top:calc(100% + 8px); width:320px; max-width:calc(100vw - 24px); padding:16px; border:1px solid var(--border-color); border-radius:12px; background:var(--card-bg); color:var(--text-primary); box-shadow:0 8px 28px #0003; z-index:1500; }
.branch-selector-hint,#branchSelectionStatus { font-size:12px; color:var(--text-secondary); margin:6px 0 10px; }
.branch-choices { max-height:40dvh; overflow:auto; border-top:1px solid var(--border-color); }
.branch-choice { display:flex; align-items:center; gap:10px; min-height:40px; padding:8px 0; font-size:14px; cursor:pointer; text-transform:none; letter-spacing:0; }
.branch-choice input { width:17px; height:17px; flex-shrink:0; accent-color:var(--accent); }
.branch-choice span { overflow-wrap:anywhere; }
.branch-selector-actions { display:flex; justify-content:flex-end; gap:8px; padding-top:12px; border-top:1px solid var(--border-color); }
#branchSelectionError { color:var(--red,#dc3545); font-size:13px; margin-block:8px; }
@media screen and (max-width:600px) {
  #branchSelectionLabel { max-width:78px; }
  .branch-selector > summary { gap:5px; padding:8px; min-height:44px; }
  .branch-selector > summary > i { display:none; }
  .branch-selector-panel { position:fixed; top:76px; right:12px; }
}

/* Company checkbox and child branch checkboxes are independent selections. */
.branch-parent { font-weight:650; }
.branch-child { margin-left:8px; padding-left:20px; border-left:1px solid var(--border-color); position:relative; }
.branch-child::before { content:''; position:absolute; left:0; top:50%; width:12px; border-top:1px solid var(--border-color); }
