/* Layout shell: sidebar (desktop) + hamburger/bottom-nav (mobile). Loads after admin.css/erp.css/stock.css and reuses their .card/button/input/dialog rules. */
:root{--sidebar-w:230px;--topbar-h:56px;--bottom-h:60px}
*{box-sizing:border-box}
body{margin:0}
#shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"side top" "side main";min-height:100vh}
/* LIVE BUG (confirmed by screenshot before this fix): app.js correctly sets shell.hidden=true before
   login (see showLogin() in app.js), but the browser's built-in `[hidden]{display:none}` rule has lower
   specificity than the `#shell{display:grid}` rule right above, so an author ID-selector rule silently
   wins and the shell (sidebar + page chrome) rendered behind the login card even while logged out. This
   explicit override restores `hidden` actually hiding it. */
#shell[hidden]{display:none}
#sidebar{grid-area:side;background:#101a2c;color:#dbe4f3;display:flex;flex-direction:column;padding:14px 0;overflow-y:auto}
#sidebar .brand{font-weight:800;font-size:1.05rem;padding:6px 20px 16px;color:#fff}
#sidenav{display:flex;flex-direction:column;gap:2px;flex:1}
#sidenav .nav-group{margin:14px 20px 4px;font-size:.72rem;letter-spacing:.06em;color:#7f90ac;text-transform:uppercase}
#sidenav a{color:#c8d3e6;text-decoration:none;padding:9px 20px;display:flex;align-items:center;justify-content:space-between;border-left:3px solid transparent;font-size:.94rem}
#sidenav a:hover{background:#182543;color:#fff}
#sidenav a.active{background:#182543;color:#fff;border-left-color:#3d8bfd;font-weight:600}
#sidebar-logout{margin:14px 20px 4px;background:#26314a;color:#fff}
.badge-count{background:#e11d48;color:#fff;border-radius:10px;font-size:.7rem;padding:1px 7px;min-width:18px;text-align:center}
#topbar{grid-area:top;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:0 18px;margin:0;background:#fff;border-bottom:1px solid #e5e9ef;position:sticky;top:0;z-index:5}
#hamburger{display:none;background:none;border:0;color:#17202a;font-size:1.3rem;padding:6px;min-height:auto}
#page-title{font-weight:700;font-size:1.05rem;margin:0}
#topbar .spacer{flex:1}
#topbar-welcome{color:#657382;font-size:.9rem}
/* admin.css defines a generic `main{margin:auto;max-width:1100px;padding:24px}` rule (written for the
   old single-card page). #content IS a <main> element, and because this stylesheet never set `margin`
   on it, that inherited `margin:auto` was cascading through: inside the #shell grid it vertically
   AND horizontally centered the whole content block, which is exactly the "content pushed down to the
   middle of the page" bug — the grid row is 1fr-tall (fills the viewport) and margin:auto shrinks the
   box to its own content size and centers it in that space. Overriding margin explicitly here kills
   the leak without having to touch admin.css (still used by the legacy, no-longer-linked admin.js/erp.html). */
#content{grid-area:main;margin:0;padding:20px;max-width:1200px;width:100%;overflow-x:hidden}
#content>h1:first-child,#content>h2:first-child,#content .view-head:first-child{margin-top:0}
#bottom-nav{display:none}
.sidebar-backdrop{display:none}

/* Generic view helpers reused across all screens */
.view-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.view-head h2{margin:0}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.stat-cards .stat{border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;background:#fff}
.stat-cards .stat small{display:block;color:#657382;margin-bottom:6px}
.stat-cards .stat strong{font-size:1.3rem}
.stat-cards .stat.warn strong{color:#b42318}
.stat-cards .stat.ok strong{color:#087443}
.chip{display:inline-block;padding:2px 9px;border-radius:10px;background:#e8eef7;font-size:.8rem}
.chip.OPEN,.chip.PARTIAL,.chip.REVIEW,.chip.UNMATCHED,.chip.DRAFT,.chip.SENT,.chip.PENDING,.chip.NEEDS_REVIEW{background:#fff3cd;color:#7a5b00}
.chip.PAID,.chip.MATCHED,.chip.ACCEPTED,.chip.READY,.chip.CONVERTED,.chip.IMPORTED,.chip.IN_STOCK{background:#dff5e5;color:#0a6b39}
.chip.OVERDUE,.chip.REJECTED,.chip.ERROR{background:#fee2e2;color:#a3141f}
.chip.SOLD,.chip.IGNORED,.chip.EXPIRED,.chip.CANCELLED{background:#eceff3;color:#4b5768}
.chip.ACTIVE{background:#dff5e5;color:#0a6b39}
.list-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.list-toolbar input,.list-toolbar select{margin:0}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
.row-actions button{padding:7px 10px;font-size:.86rem;min-height:38px}
.mobile-cards{display:none}
.line-items{width:100%;border-collapse:collapse}
.line-items td,.line-items th{padding:6px;border-bottom:1px solid #edf0f3}
.line-items input,.line-items select{width:100%;padding:7px;font-size:.88rem}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px}
.form-grid label{margin:0}
.sale-customer-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column:span 2;gap:8px;align-items:end;min-width:0}.sale-customer-field label{display:grid;grid-template-columns:1fr;min-width:0}.sale-customer-field input{width:100%;min-width:0}.sale-customer-field button{white-space:nowrap;margin-bottom:0}.quick-customer-wide{grid-column:1/-1}.quick-customer-duplicate{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px;border:1px solid #efc46b;border-radius:9px;background:#fff8df;color:#704f00}.quick-customer-duplicate[hidden]{display:none}
.direct-history-title{margin-top:24px}.direct-history-title h3{margin:0}.direct-settlement-form{width:100%;min-width:0;box-sizing:border-box}.direct-settlement-form .form-grid>*{min-width:0}.direct-settlement-form input,.direct-settlement-form select,.direct-settlement-form textarea{width:100%;min-width:0;box-sizing:border-box}.direct-settlement-summary{width:100%;min-width:0;box-sizing:border-box;margin-top:16px;padding:14px;border:1px solid #cbd8e6;border-radius:10px;background:#f7faff;display:grid;gap:7px;overflow-wrap:anywhere}.direct-settlement-summary h4{margin:0 0 4px}.direct-settlement-summary div{min-width:0}
.pay-rows{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.pay-row{display:grid;grid-template-columns:1.1fr 1fr 1fr auto;gap:8px;align-items:center}
.total-banner{display:flex;justify-content:space-between;gap:20px;padding:12px 16px;background:#f4f6f8;border-radius:10px;font-weight:700;margin:12px 0}
.total-banner.balanced{color:#087443}
.total-banner.unbalanced{color:#b42318}
.notification-item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #edf0f3;cursor:pointer}
.notification-item.unread{background:#eef4ff}
.notification-item small{color:#657382}
.empty-hint{color:#657382;padding:20px 0;text-align:center}
dialog#action-dialog{width:min(1100px,92vw);max-width:92vw;max-height:90vh;overflow:hidden}
dialog#action-dialog form{width:100%;min-width:0;max-height:calc(90vh - 40px);display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;overflow:hidden}
dialog#action-dialog #action-dialog-body{width:100%;min-width:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding-right:4px}
dialog#action-dialog .actions{margin-top:14px;flex:0 0 auto}
.reparse-summary{width:100%;min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:12px 0 16px}
.reparse-summary>div{border:1px solid #dfe5eb;border-radius:10px;padding:10px;min-width:0;background:#f8fafc}
.reparse-summary small,.reparse-field small{display:block;color:#657382;margin-bottom:3px}
.reparse-summary strong{overflow-wrap:anywhere}.pass-text{color:#087443}
.reparse-cards{width:100%;min-width:0;display:flex;flex-direction:column;gap:14px}
.reparse-card{width:100%;min-width:0;box-sizing:border-box;border:1px solid #dfe5eb;border-radius:12px;padding:14px;background:#fff}
.reparse-card h3,.reparse-side h4{margin:0 0 10px}
.reparse-compare{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.reparse-side{width:100%;min-width:0;box-sizing:border-box;border-radius:10px;padding:12px;background:#f5f6f8}
.reparse-side.new{background:#f0f9f4;border:1px solid #b8dfc7}
.reparse-field{width:100%;min-width:0;box-sizing:border-box;padding:6px 8px;border-bottom:1px solid #e4e9ee;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.reparse-field span{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.reparse-side.new .reparse-field.changed{background:#fff7d6;border-left:4px solid #e0a800;border-radius:6px;margin:3px 0}
.reparse-validation{margin-top:10px;padding:8px;border-radius:7px;font-weight:700}.reparse-validation.pass{color:#087443;background:#dff5e5}.reparse-validation.fail{color:#b42318;background:#fee2e2}
.reparse-blocked{color:#b42318;background:#fee2e2;border-radius:8px;padding:10px;margin:10px 0;overflow-wrap:anywhere}
@media(max-width:600px){dialog#action-dialog{padding:14px}.reparse-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.reparse-compare{grid-template-columns:1fr}.reparse-card{padding:10px}.reparse-side{padding:10px}dialog#action-dialog .actions{display:grid;grid-template-columns:1fr 1fr}dialog#action-dialog .actions button{width:100%;min-width:0}}
@media(max-width:600px){.sale-customer-field{grid-template-columns:1fr;grid-column:auto}.sale-customer-field button{width:100%}.quick-customer-wide{grid-column:auto}.quick-customer-duplicate{align-items:stretch;flex-direction:column}.quick-customer-duplicate button{width:100%}}
@media(max-width:600px){.direct-settlement-form .form-grid{grid-template-columns:1fr}.direct-settlement-summary{padding:11px}.direct-history-title{margin-top:18px}}
.tabbar{display:flex;gap:6px;overflow-x:auto;margin-bottom:12px}
.tabbar button{background:#eef1f5;color:#334;border-radius:20px;padding:8px 16px;white-space:nowrap}
.tabbar button.active{background:#1769e0;color:#fff}
.ledger-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.ledger-summary div{border:1px solid #e5e7eb;border-radius:10px;padding:10px 14px}

/* Fatura Detay kalem kartları (mobil + masaüstü ortak taban stil). Grid auto-fill+minmax kullanır ki
   kolonlar konteynerin genişliğine göre sarsın — sabit kolon sayısı yerine bu yaklaşım 360/390/412px gibi
   dar ekranlarda yatay taşma olmasını YAPISAL olarak imkansız kılar (konteyner genişliğini asla aşamaz). */
.item-cards{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.item-card{border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;background:#fff;min-width:0}
.item-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.item-number{font-weight:800;color:#435064}.item-card-name{font-weight:750;font-size:1rem;line-height:1.45;margin-bottom:12px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:normal;max-width:100%}
.item-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px 12px;margin-bottom:10px}
.item-card-grid>div{min-width:0}
.item-card-grid small{display:block;color:#657382;font-size:.72rem;margin-bottom:2px}
.item-card-grid div{font-size:.9rem;overflow-wrap:break-word}
.item-card-match{display:flex;flex-direction:column;gap:8px;border-top:1px solid #edf0f3;padding-top:10px}
.item-card-match select{width:100%}
.item-card-main-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.item-serials{border-radius:10px;background:#f6f8fb;padding:10px 12px;margin:4px 0 12px;min-width:0;overflow-wrap:anywhere}.item-serials strong{display:block;margin-bottom:5px}.item-serials ul{margin:4px 0 0;padding-left:20px}.match-empty{margin:0;padding:10px;border:1px dashed #ccd4de;border-radius:9px;background:#fafbfc}.match-empty-panel{text-align:center;padding:18px;border:1px dashed #bdc8d5;border-radius:12px}.match-candidates{display:grid;gap:10px}.match-candidate{border:1px solid #dfe5eb;border-radius:10px;padding:12px;display:grid;gap:5px;min-width:0}.match-candidate strong,.match-candidate div{overflow-wrap:anywhere}
.stock-match-combobox{position:relative;width:100%;min-width:0}.stock-match-search{width:100%;box-sizing:border-box}.stock-match-results{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);max-height:310px;overflow-y:auto;overflow-x:hidden;background:#fff;border:1px solid #ccd6e2;border-radius:10px;box-shadow:0 12px 30px #18212b26}.stock-match-result{display:grid;width:100%;min-width:0;text-align:left;gap:3px;padding:10px 12px;border:0;border-bottom:1px solid #edf0f3;border-radius:0;background:#fff;color:inherit}.stock-match-result:hover,.stock-match-result:focus{background:#f0f6ff}.stock-match-result strong,.stock-match-result span{white-space:normal;overflow-wrap:anywhere}.stock-match-result span,.stock-match-selected small{font-size:.78rem;color:#657382}.stock-match-selected{display:grid;gap:3px;margin-top:7px;padding:9px 11px;border:1px solid #b8dfc4;border-radius:9px;background:#f0faf3;min-width:0}.stock-match-selected strong,.stock-match-selected small{overflow-wrap:anywhere}.stock-match-none{display:grid;gap:9px;padding:12px;overflow-wrap:anywhere}.chip.SUGGESTED{background:#fff4cf;color:#745600}
@media(max-width:600px){.item-card-main-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.item-card-head{align-items:flex-start}.item-card-match .row-actions{display:grid;grid-template-columns:1fr}.item-card-match button{width:100%;white-space:normal}.item-card{width:100%;min-width:0;overflow:hidden}}
.safe-match{display:grid;gap:4px;padding:11px;border:1px solid #b8dfc4;background:#f0faf3;border-radius:10px}.safe-match span,.safe-match strong{overflow-wrap:anywhere}.cost-snapshot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:#f5f8fc;border:1px solid #dde5ef;border-radius:10px;padding:11px}.cost-snapshot small{display:block;color:#657382;margin-bottom:3px}.cost-snapshot strong{overflow-wrap:anywhere}@media(max-width:420px){.cost-snapshot{grid-template-columns:1fr}}

@media(max-width:900px){
  :root{--sidebar-w:220px}
}

@media(max-width:768px){
  #shell{grid-template-columns:1fr;grid-template-rows:var(--topbar-h) 1fr var(--bottom-h);grid-template-areas:"top" "main" "bottom"}
  #sidebar{position:fixed;inset:0 30% 0 0;transform:translateX(-100%);transition:transform .2s ease;z-index:20;width:auto}
  #sidebar.open{transform:translateX(0)}
  .sidebar-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:15}
  .sidebar-backdrop.open{display:block}
  #hamburger{display:inline-flex;align-items:center;justify-content:center}
  #content{padding:12px 12px calc(var(--bottom-h) + 12px)}
  #bottom-nav{grid-area:bottom;display:flex;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #e5e9ef;z-index:10;padding:4px 0 max(4px,env(safe-area-inset-bottom))}
  #bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:#657382;text-decoration:none;font-size:.72rem;padding:6px 2px}
  #bottom-nav a .icon{font-size:1.15rem}
  #bottom-nav a.active{color:#1769e0;font-weight:700}
  table.desktop-only{display:none}
  .mobile-cards{display:flex;flex-direction:column;gap:10px}
  .mobile-cards .mcard{border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px;background:#fff}
  .mobile-cards .mcard .mrow{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:.88rem}
  .mobile-cards .mcard .mrow small{color:#657382}
  .pay-row{grid-template-columns:1fr}
.form-grid{grid-template-columns:1fr}
}
@media(min-width:769px){.mobile-cards{display:none}}
.quote-v2-dialog #action-dialog-body{padding-right:8px}.quote-v2-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-v2-fields .wide{grid-column:1/-1}.fx-snapshot,.stock-readonly-note{padding:11px 12px;border:1px solid #d9e4ef;border-radius:9px;background:#f5f9fd;overflow-wrap:anywhere}.quote-v2-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.quote-v2-totals>div{padding:12px;border:1px solid #dce5ee;border-radius:10px;background:#f8fafc;min-width:0}.quote-v2-totals small,.quote-v2-totals strong{display:block;overflow-wrap:anywhere}.quote-v2-totals strong{margin-top:5px}.mobile-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.mobile-actions button{width:100%;min-width:0;white-space:normal}.stock-v2-form{width:100%;min-width:0}.stock-v2-form .wide{grid-column:1/-1}.stock-v2-form input,.stock-v2-form select,.stock-v2-form textarea{width:100%;box-sizing:border-box;min-height:44px}.serial-v2-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.serial-v2-list article{display:grid;gap:5px;padding:12px;border:1px solid #dbe4ed;border-radius:10px;min-width:0}.serial-v2-list article>*{overflow-wrap:anywhere}
dialog#action-dialog.quote-v2-dialog{width:min(1440px,98vw);max-width:98vw;height:min(94vh,980px);max-height:94vh;padding:18px}
@media(max-width:600px){dialog#action-dialog.quote-v2-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:12px}.quote-v2-fields,.quote-v2-totals,.serial-v2-list{grid-template-columns:minmax(0,1fr)!important}.quote-v2-fields .wide,.stock-v2-form .wide{grid-column:auto}.quote-v2-dialog .table-scroll{overflow-x:auto}.quote-v2-dialog .line-items{min-width:820px}.quote-package-items{grid-template-columns:1fr}.quote-package-head{align-items:stretch;flex-direction:column}.mobile-actions{grid-template-columns:1fr 1fr}}
.check-label{display:flex;align-items:center;gap:.6rem}.check-label input{width:auto}.serial-receipt{display:grid;gap:.55rem;margin-top:1rem}.serial-receipt textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,monospace}
/* Master ERP candidate: every new modal/card may shrink inside grid/flex parents. */
dialog,.dialog-body,.card,.form-grid,.table-scroll,.line-items{box-sizing:border-box;min-width:0;max-width:100%}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.line-items input,.line-items select,.form-grid input,.form-grid select,.form-grid textarea{max-width:100%;min-width:0}
@media(max-width:600px){dialog{width:min(96vw,560px);max-height:92vh;overflow-y:auto;overflow-x:hidden}.form-grid{grid-template-columns:1fr!important}.row-actions{display:flex;flex-wrap:wrap}.row-actions button{flex:1 1 145px}.ledger-summary{grid-template-columns:1fr 1fr}.line-items{font-size:.82rem}.line-items th,.line-items td{padding:6px}}
.batch-preview,.sale-edit-preview{margin-top:14px;padding:14px;border:1px solid #dce4ee;border-radius:12px;background:#f8fafc;min-width:0;overflow-wrap:anywhere}.batch-preview ul{margin:.6rem 0 0;padding-left:1.25rem}.sale-edit-items{display:grid;gap:12px;margin-top:14px}.sale-edit-items article{border:1px solid #e1e7ee;border-radius:12px;padding:12px;min-width:0}.sale-edit-items small{display:block;color:#657382;margin:.35rem 0 .75rem}.compare-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.compare-grid section{min-width:0;border-radius:10px;background:#fff;padding:12px;overflow-wrap:anywhere}.warning{padding:10px 12px;border-radius:9px;background:#fff8df;color:#6f5400}@media(max-width:600px){.compare-grid{grid-template-columns:1fr}}
/* Faz C1 mobile-first finance operation dialogs */
.c1-form{width:100%;min-width:0}.c1-form label{min-width:0}.c1-form input,.c1-form select,.c1-form textarea{width:100%;box-sizing:border-box;min-height:44px}.c1-form textarea{min-height:88px}.c1-form .wide{grid-column:1/-1}.c1-fixed-list{display:grid;gap:8px;margin-top:16px}.c1-fixed-list article{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border,#d9e2ec);border-radius:10px}.row-actions button{min-height:44px}
@media(max-width:600px){.c1-form{grid-template-columns:minmax(0,1fr)!important}.c1-form .wide{grid-column:auto}.view-head .row-actions{width:100%;display:grid;grid-template-columns:1fr}.view-head .row-actions button{width:100%}.c1-fixed-list article{flex-direction:column}}
.dialog-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-x{min-width:44px;min-height:44px;border:0;background:transparent;font-size:28px;line-height:1}
/* Faz C2 supplier purchase/payment and quote package forms */
.c2-form,.c2-purchase-items,.c2-purchase-item{width:100%;min-width:0;box-sizing:border-box}.c2-form input,.c2-form select,.c2-form textarea,.c2-purchase-item input,.c2-purchase-item select,.c2-purchase-item textarea{width:100%;min-width:0;box-sizing:border-box;min-height:44px}.c2-form .wide,.c2-purchase-item .wide{grid-column:1/-1}.c2-purchase-items{display:grid;gap:12px;margin:14px 0}.c2-purchase-item{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;padding:13px;border:1px solid #dbe3ec;border-radius:12px;background:#fafcff}.c2-purchase-item label{min-width:0;margin:0}.c2-purchase-item textarea{min-height:76px}.c2-purchase-item>[data-c2-remove]{align-self:end}
@media(max-width:600px){.c2-form,.c2-purchase-item{grid-template-columns:minmax(0,1fr)!important}.c2-form .wide,.c2-purchase-item .wide{grid-column:auto}.c2-purchase-item button{width:100%;min-height:44px}}
.quote-package-panel{width:100%;min-width:0;box-sizing:border-box;margin:14px 0;padding:14px;border:1px solid #cbd8e6;border-radius:12px;background:#f7fbff;overflow:hidden}.quote-package-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.quote-package-head small{display:block;color:#657382;margin-top:3px}.quote-package-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.quote-package-items article{display:flex;flex-direction:column;gap:5px;min-width:0;padding:12px;background:#fff;border:1px solid #dce5ee;border-radius:10px;overflow-wrap:anywhere}.quote-package-pricing{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end;margin-bottom:12px}.quote-package-pricing label,.quote-package-pricing input,.quote-package-pricing select{min-width:0;width:100%;box-sizing:border-box}.quote-package-pricing small{display:block;color:#657382}.quote-package-panel>button{min-height:44px}
.pkg-warn{margin:10px 0;padding:10px 12px;border-radius:9px;background:#fff3cd;color:#6b5100;overflow-wrap:anywhere}.pkg-cable{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end;margin:12px 0;padding:12px;background:#fff;border:1px solid #dce5ee;border-radius:10px}.pkg-cable label,.pkg-cable input{min-width:0;box-sizing:border-box}.pkg-cable small{display:block;color:#657382}
@media(max-width:600px){.quote-package-head{align-items:stretch;flex-direction:column}.quote-package-items,.quote-package-pricing{grid-template-columns:1fr}.quote-package-panel>button,.quote-package-head button{width:100%}}
@media(max-width:600px){.pkg-cable{grid-template-columns:1fr}.pkg-cable input{min-height:44px}}
.form-error{background:#fee2e2;border:1px solid #ef4444;border-radius:8px;color:#991b1b;font-weight:600;padding:10px 12px;width:100%;box-sizing:border-box;overflow-wrap:anywhere}
#product-form [aria-invalid="true"]{border-color:#dc2626;outline:2px solid rgba(220,38,38,.2)}

/* ── Customer responsive cards (v61) ── */
.customer-table-wrap { overflow-x: auto; }
.currency-balance{white-space:nowrap;font-weight:700}

/* V6.1: content must shrink next to the fixed sidebar; only the stock table may scroll. */
#shell,#content,main,.view-head,#stock-table-wrap,#stock-table-wrap .table-wrap{min-width:0;max-width:100%;box-sizing:border-box}
#stock-table-wrap{width:100%;overflow:hidden}
#stock-table-wrap .table-wrap{width:100%;overflow-x:auto;overscroll-behavior-x:contain}
#stock-table-wrap table{width:100%;min-width:1180px;table-layout:auto}
#stock-table-wrap th,#stock-table-wrap td{white-space:normal;overflow-wrap:anywhere;vertical-align:top}
#stock-table-wrap .row-actions{min-width:170px}
.cash-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.cash-grid>div{min-width:0}
@media(max-width:768px){#stock-table-wrap table.desktop-only{display:none}#stock-table-wrap+.mobile-cards{display:flex}.cash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.view-head{flex-wrap:wrap}.view-head>.row-actions{width:100%}}
.customer-cards-wrap { display: none; }
@media (max-width: 700px) {
  .customer-table-wrap { display: none; }
  .customer-cards-wrap { display: grid; gap: 12px; }
  .customer-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 14px; }
  .customer-card .cc-main { margin-bottom: 10px; }
  .customer-card .cc-main strong { font-size: 1rem; display: block; }
  .customer-card .cc-company { color: #888; font-size: .82rem; display: block; margin: 2px 0; }
  .customer-card .cc-code { color: #aaa; font-size: .78rem; display: block; }
  .customer-card .cc-stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; text-align: center; margin-bottom: 10px; }
  .customer-card .cc-stats div { background: #f8f9fa; border-radius: 8px; padding: 6px 4px; }
  .customer-card .cc-stats small { display: block; color: #888; font-size: .72rem; margin-bottom: 3px; }
  .customer-card .cc-stats strong { font-size: .9rem; }
}
