/* Nexware ERP v0.34.0 — Professional Operations / Purchase 2.0 / Fast Onboarding
   Additive only. v0.33.2 remains authoritative for stable first paint, header collision
   protection, keyboard flow and professional-document containment. */

/* New screens must shrink inside the existing shell. */
.choice-grid,.quote-comparison-grid,.readiness-grid,.quick-link-grid,.crm-funnel-grid,
.import-template-grid,.import-start-grid,.procurement-summary-grid,.grn-header-grid{min-width:0;max-width:100%}
.choice-grid>*,.quote-comparison-grid>*,.readiness-grid>*,.quick-link-grid>*,.crm-funnel-grid>*,
.import-template-grid>*,.procurement-summary-grid>*{min-width:0}
.procurement-section-head{gap:12px;flex-wrap:wrap}.procurement-section-head>div{min-width:0}
.procurement-section-head h2{margin-bottom:4px}

/* Purchase 2.0 cards and controlled workflow surfaces. */
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.choice-card{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--panel,#fff)}
.choice-card input{margin-top:3px}.choice-card>span{display:flex;flex-direction:column;gap:3px}.choice-card small{color:var(--muted,#64748b)}
.quote-comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}
.quote-card{position:relative;border:1px solid var(--border,#e2e8f0);border-radius:14px;background:var(--panel,#fff);padding:16px;display:grid;gap:9px}
.quote-card.best-value{border-color:#86b79c;box-shadow:0 8px 24px rgba(22,101,52,.08)}
.best-value-badge{width:max-content;max-width:100%;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:4px 8px;background:#edf9f1;color:#246b43}
.quote-card .metric{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--border,#e2e8f0)}
.quote-card .metric span{font-size:11px;color:var(--muted,#64748b)}.quote-card .metric strong{text-align:right}
.quote-card form{margin:3px 0 0}.quote-card form .button{width:100%}
.procurement-lines{min-width:980px}.procurement-compare-table{min-width:920px}.grn-entry-table{min-width:1040px}
.grn-qty{min-width:110px;width:100%;max-width:150px}
.procurement-policy{margin-top:14px}.procurement-policy b{white-space:nowrap}

/* Status language introduced by Purchase 2.0. */
.status-submitted,.pill.submitted{background:#eef4ff;color:#315ca8}
.status-approved,.pill.approved,.status-selected,.pill.selected{background:#eaf8ef;color:#267346}
.status-rejected,.pill.rejected,.status-cancelled,.pill.cancelled{background:#fff0f0;color:#a52828}
.status-converted,.pill.converted,.status-sent,.pill.sent{background:#f3efff;color:#6650a4}
.status-closed,.pill.closed{background:#edf1f5;color:#4c5b6b}

/* Fast onboarding / professional master productivity. */
.readiness-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.readiness-card{border:1px solid var(--border,#e2e8f0);border-radius:13px;padding:14px;background:var(--panel,#fff);display:flex;align-items:center;justify-content:space-between;gap:12px}
.readiness-card>div{min-width:0}.readiness-card strong,.readiness-card span{display:block}.readiness-card span{font-size:11px;color:var(--muted,#64748b);margin-top:3px}
.readiness-card.ready{border-color:#b8dfc8}.readiness-card.missing{border-color:#ead7a2;background:#fffcf4}
.onboarding-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:18px;align-items:stretch}
.onboarding-score{display:grid;place-items:center;text-align:center;border:1px solid var(--border,#e2e8f0);border-radius:14px;padding:20px;background:var(--surface-2,#f8fafc)}
.onboarding-score strong{font-size:38px}.onboarding-score span{font-size:11px;color:var(--muted,#64748b)}
.quick-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.action-card{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--panel,#fff)}
.action-card:hover{border-color:var(--brand,var(--accent,#2563eb));box-shadow:0 6px 18px rgba(15,23,42,.06)}.action-card span{font-size:11px;color:var(--muted,#64748b)}
.master-hub-card.featured{border-color:#b8cdfa;background:#f7f9ff}
.variant-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.variant-builder-grid .full{grid-column:1/-1}
.variant-preview{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.variant-preview span{padding:5px 8px;border:1px solid var(--border,#e2e8f0);border-radius:999px;font-size:11px;background:var(--surface-2,#f8fafc)}

/* Bulk Import Center. */
.import-steps{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin:-4px 0 18px;padding:11px 14px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--panel,#fff);font-size:11px;font-weight:800}
.import-steps b{color:var(--muted,#64748b)}
.import-mode-grid{grid-template-columns:minmax(260px,520px)}
.import-start-grid{align-items:stretch}.import-order-card{margin-bottom:0}
.migration-order{display:grid;gap:8px;padding-left:22px;margin:0}.migration-order li{padding-left:4px}
.import-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.import-template-card{border:1px solid var(--border,#e2e8f0);border-radius:12px;padding:13px;background:var(--panel,#fff);display:grid;gap:10px;align-content:start}
.import-template-card>div{display:grid;gap:4px}.import-template-card>div span{font-size:11px;color:var(--muted,#64748b);line-height:1.4}.import-template-card .button{width:max-content}
.import-template-card details{min-width:0}.import-template-card summary{cursor:pointer;font-size:11px;font-weight:700;color:var(--muted,#64748b)}.import-template-card code{display:block;max-width:100%;overflow:auto;white-space:normal;word-break:break-word;margin-top:8px;font-size:10px}
.import-preview-actions{margin:16px 0;flex-wrap:wrap}.import-preview-actions form{margin:0}.import-history-pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}

/* CRM → Sales commercial funnel. */
.crm-commercial-funnel{margin-bottom:18px}.crm-funnel-grid{display:grid;grid-template-columns:repeat(9,max-content);align-items:center;justify-content:space-between;gap:8px;margin:14px 0;overflow-x:auto;padding-bottom:4px}
.crm-funnel-grid>div{min-width:125px;border:1px solid var(--border,#e2e8f0);border-radius:11px;padding:11px;background:var(--surface-2,#f8fafc)}
.crm-funnel-grid>div span{display:block;color:var(--muted,#64748b);font-size:10px;margin-bottom:5px}.crm-funnel-grid>div strong{font-size:16px}.crm-funnel-grid>b{color:var(--muted,#64748b)}

/* Dedicated procurement search. */
.search-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.search-hero input{min-width:0;width:100%}
.search-result-stack{display:grid;gap:8px}.search-result-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--border,#e2e8f0);border-radius:11px;background:var(--panel,#fff)}
.search-result-row>div{min-width:0}.search-result-row strong,.search-result-row span{display:block}.search-result-row span{font-size:11px;color:var(--muted,#64748b);overflow-wrap:anywhere}

/* Utilities can now host navigational productivity shortcuts as well as modal tools. */
.utility-menu a{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:0;background:transparent;padding:11px 12px;border-radius:10px;text-align:left;color:inherit;text-decoration:none}
.utility-menu a:hover{background:var(--surface-2,#f1f5f9)}.utility-menu a span{font-size:11px;color:var(--muted,#64748b)}
.quick-create-menu a small{display:block;font-size:10px;color:var(--muted,#64748b);font-weight:500;margin-top:2px}

/* Responsive guardrails: step down before any new grid can cause right-side overflow. */
@media(max-width:1380px){
  .readiness-grid,.quick-link-grid,.import-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .crm-funnel-grid{justify-content:start}
}
@media(max-width:1080px){
  .onboarding-hero{grid-template-columns:1fr}
  .quote-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .readiness-grid,.quick-link-grid,.import-template-grid,.quote-comparison-grid,.variant-builder-grid{grid-template-columns:1fr}
  .variant-builder-grid .full{grid-column:auto}
  .search-hero{grid-template-columns:1fr}.search-hero .button{width:100%}
  .import-history-pills{justify-content:flex-start}
}
@media(max-width:520px){
  .import-steps{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.import-steps span,.import-steps b{white-space:nowrap}
  .quote-card{padding:13px}.readiness-card{align-items:flex-start}
}
.readiness-card.needs-work{border-color:#ead7a2;background:#fffcf4}.readiness-card>span{font-weight:900}.readiness-card small{display:block;color:var(--muted,#64748b);margin-top:3px}.quick-link-grid{margin-top:18px}.search-result-row>span{flex:0 0 auto}.search-result-row>div{flex:1 1 auto}.search-result-row small{display:block;font-size:11px;color:var(--muted,#64748b);overflow-wrap:anywhere}
.variant-builder-preview-box{margin-top:14px;padding:14px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--surface-2,#f8fafc)}.variant-builder-preview-box>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.variant-builder-preview-box>div:first-child span{font-size:11px;color:var(--muted,#64748b)}
.supplier-quote-lines{min-width:980px}.supplier-quote-preview{margin-top:14px;padding:13px 15px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--surface-2,#f8fafc);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.supplier-quote-preview>div{display:grid;gap:3px}.supplier-quote-preview span{font-size:10px;color:var(--muted,#64748b)}.supplier-quote-preview strong{font-size:20px}

/* v0.34 Batch-B live QA corrective polish — scoped to Professional Masters surfaces only. */
.section-kicker{display:block;margin-bottom:5px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#64748b)}

/* Professional Masters control center. */
.master-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.master-summary-strip>div{min-width:0;padding:15px 16px;border:1px solid var(--border,#e2e8f0);border-radius:13px;background:var(--panel,#fff);display:grid;gap:4px}
.master-summary-strip span{font-size:11px;color:var(--muted,#64748b)}.master-summary-strip strong{font-size:24px;line-height:1}.master-summary-strip small{font-size:10px;color:var(--muted,#64748b);overflow-wrap:anywhere}
.master-control-sections{display:grid;gap:16px}.master-section{padding:18px}.master-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.master-section-head h2{margin:0;font-size:17px}
.master-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.master-control-card{min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--panel,#fff);text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.master-control-card:hover{border-color:#aebfe9;box-shadow:0 7px 22px rgba(15,23,42,.06);transform:translateY(-1px)}.master-control-card.featured{background:#f8faff;border-color:#c7d5f5}
.master-card-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2,#f1f5f9);font-size:11px;font-weight:900;letter-spacing:.06em;color:var(--accent,#2457d6)}
.master-control-card>div{min-width:0;display:grid;gap:4px}.master-control-card strong{font-size:13px}.master-control-card p{margin:0;font-size:11px;line-height:1.45;color:var(--muted,#64748b)}.master-control-card small{font-size:10px;color:var(--muted,#64748b)}.master-card-action{font-size:10px;font-weight:800;color:var(--accent,#2457d6);white-space:nowrap}
.master-policy-note{margin-top:16px}.master-policy-note strong{display:block;margin:4px 0 5px}.master-policy-note p{margin:0}

/* Industry-neutral dynamic Variant Builder. */
.variant-workspace{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.65fr);gap:16px;align-items:start}.variant-family-card{position:sticky;top:88px;min-width:0}.variant-family-card h2,.variant-section-card h2{margin:0 0 5px}.variant-parent-picker{margin:14px 0}.variant-parent-picker label{display:grid;gap:6px;font-size:12px;font-weight:700}.variant-parent-picker select{width:100%;min-width:0;padding:10px 11px;border:1px solid #ccd4de;border-radius:8px;background:#fff;font:inherit}
.variant-parent-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.variant-parent-summary>div{padding:10px;border:1px solid var(--border,#e2e8f0);border-radius:10px;background:var(--surface-2,#f8fafc);min-width:0}.variant-parent-summary span,.variant-parent-summary strong{display:block}.variant-parent-summary span{font-size:10px;color:var(--muted,#64748b);margin-bottom:4px}.variant-parent-summary strong{font-size:12px;overflow-wrap:anywhere}.variant-help-card{margin-top:16px;padding:14px;border:1px dashed #cbd5e1;border-radius:12px;background:var(--surface-2,#f8fafc)}.variant-help-card p{margin:6px 0 0;line-height:1.5}
.variant-builder-main{min-width:0;display:grid;gap:14px}.variant-builder-main .erp-form{display:grid;gap:14px}.variant-section-card{margin:0;min-width:0}.variant-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.variant-section-heading>div{min-width:0}.variant-section-heading p{margin:0}.variant-dimension-list{display:grid;gap:9px}.variant-dimension-row{display:grid;grid-template-columns:30px minmax(170px,.75fr) minmax(260px,1.5fr) auto;gap:10px;align-items:end;padding:11px;border:1px solid var(--border,#e2e8f0);border-radius:11px;background:var(--surface-2,#f8fafc);min-width:0}.variant-dimension-index{align-self:center;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#fff;border:1px solid var(--border,#e2e8f0);font-size:11px;font-weight:800;color:var(--muted,#64748b)}.variant-dimension-row label{display:grid;gap:5px;font-size:11px;font-weight:700;min-width:0}.variant-dimension-row input,.variant-dimension-row textarea{width:100%;min-width:0;padding:9px 10px;border:1px solid #ccd4de;border-radius:8px;background:#fff;font:inherit;resize:vertical}.variant-remove-dimension{align-self:center}
.variant-example-strip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--border,#e2e8f0)}.variant-example-strip>span{font-size:10px;color:var(--muted,#64748b);font-weight:700}.variant-example-strip button{border:1px solid var(--border,#e2e8f0);border-radius:999px;background:#fff;padding:5px 8px;font-size:10px;cursor:pointer;color:var(--text,#17212b)}.variant-example-strip button:hover{border-color:#aebfe9;color:var(--accent,#2457d6)}
.variant-commercial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.variant-commercial-grid label{display:grid;gap:6px;font-size:11px;font-weight:700;min-width:0}.variant-commercial-grid input{width:100%;min-width:0;padding:10px 11px;border:1px solid #ccd4de;border-radius:8px;background:#fff;font:inherit}.variant-commercial-grid small{font-weight:400}.variant-count-badge{padding:6px 9px;border:1px solid var(--border,#e2e8f0);border-radius:999px;background:var(--surface-2,#f8fafc);font-size:11px;white-space:nowrap}.variant-preview-table-wrap{overflow:auto;border:1px solid var(--border,#e2e8f0);border-radius:11px;margin-bottom:12px}.variant-preview-table{margin:0}.variant-preview-table td,.variant-preview-table th{padding:10px 12px}.variant-preview-table th:first-child{width:60%}.variant-empty-main{min-height:260px;display:grid;place-items:center;text-align:center;align-content:center}.variant-empty-main p{max-width:520px}

/* Bulk Import: compact summary, robust mapping visibility and readable row details. */
.import-metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0 4px}.import-metric-strip>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border,#e2e8f0);border-radius:10px;background:var(--surface-2,#f8fafc)}.import-metric-strip span{font-size:10px;color:var(--muted,#64748b)}.import-metric-strip strong{font-size:20px}.import-metric-strip .ok strong{color:#197342}.import-metric-strip .has-error strong{color:#a52828}
.import-preview-actions{margin:12px 0!important}.import-preview-actions .button[disabled]{opacity:.48;cursor:not-allowed}.import-preview-table-wrap{border:1px solid var(--border,#e2e8f0);border-radius:11px}.import-preview-table td{vertical-align:middle}.import-row-details{max-width:720px}.import-row-details summary{cursor:pointer;color:var(--accent,#2457d6);font-size:11px;font-weight:700}.import-row-details .json-cell{display:block;margin-top:7px;padding:9px 10px;border-radius:8px;background:var(--surface-2,#f8fafc);white-space:pre-wrap;overflow-wrap:anywhere;font-size:10px;line-height:1.5}.import-validation-cell{min-width:180px;font-size:11px}

/* Price Lists: professional navigation/editor and compact productivity. */
.price-manager-layout{display:grid;grid-template-columns:minmax(280px,350px) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}.price-manager-nav,.price-editor-card{margin:0;min-width:0}.price-manager-nav{padding:14px}.price-nav-head{margin-bottom:10px}.price-list-nav{display:grid;gap:7px;max-height:610px;overflow:auto;padding-right:2px}.price-list-nav-item{display:grid;gap:5px;padding:11px 12px;border:1px solid var(--border,#e2e8f0);border-radius:10px;background:#fff;text-decoration:none;color:inherit}.price-list-nav-item:hover{border-color:#b7c6e8}.price-list-nav-item.active{border-color:#8facf1;background:#f7f9ff;box-shadow:inset 3px 0 0 var(--accent,#2457d6)}.price-list-nav-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.price-list-nav-title strong{font-size:12px}.price-list-nav-meta{display:flex;gap:6px;flex-wrap:wrap}.price-list-nav-meta span{font-size:9px;font-weight:700;padding:3px 6px;border-radius:999px;background:var(--surface-2,#f1f5f9);color:var(--muted,#64748b)}.price-list-nav-item small{font-size:9px;color:var(--muted,#64748b);overflow-wrap:anywhere}
.price-editor-head{margin-bottom:12px}.price-header-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.price-header-form-grid>label{display:grid;gap:5px;font-size:11px;font-weight:700;min-width:0}.price-header-form-grid input,.price-header-form-grid select{width:100%;min-width:0;padding:10px 11px;border:1px solid #ccd4de;border-radius:8px;background:#fff;font:inherit;font-weight:400}.price-header-form-grid small{font-weight:400}.price-toggle-stack{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;padding-bottom:5px}.price-toggle-stack .check-label{padding-top:0!important;display:flex!important;gap:7px!important}.price-toggle-stack input{width:auto}
.price-productivity-card,.price-items-card{margin-top:16px}.price-productivity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.price-action-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.75fr) auto;gap:12px;align-items:end;padding:13px;border:1px solid var(--border,#e2e8f0);border-radius:11px;background:var(--surface-2,#f8fafc);min-width:0}.price-action-box>div{align-self:center}.price-action-box p{margin:4px 0 0}.price-action-box label{display:grid;gap:5px;font-size:11px;font-weight:700}.price-action-box input{width:100%;min-width:0;padding:9px 10px;border:1px solid #ccd4de;border-radius:8px;background:#fff;font:inherit}.price-action-box button{white-space:nowrap}.price-items-table-wrap{border:1px solid var(--border,#e2e8f0);border-radius:11px}.price-items-table-wrap table{margin:0}

@media(max-width:1280px){.master-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.variant-workspace{grid-template-columns:1fr}.variant-family-card{position:static}.price-manager-layout{grid-template-columns:300px minmax(0,1fr)}.price-productivity-grid{grid-template-columns:1fr}.price-action-box{grid-template-columns:minmax(0,1fr) minmax(180px,.7fr) auto}}
@media(max-width:960px){.master-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.variant-commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.variant-dimension-row{grid-template-columns:30px minmax(0,1fr);align-items:start}.variant-dimension-row label:nth-of-type(2){grid-column:2}.variant-remove-dimension{grid-column:2;width:max-content}.price-manager-layout{grid-template-columns:1fr}.price-list-nav{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr))}.price-header-form-grid{grid-template-columns:1fr}.import-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.master-summary-strip,.master-card-grid,.price-list-nav,.variant-commercial-grid,.import-metric-strip{grid-template-columns:1fr}.master-control-card{grid-template-columns:38px minmax(0,1fr)}.master-card-action{grid-column:2}.variant-section-heading{flex-direction:column}.variant-section-heading .button{width:100%}.variant-dimension-row{grid-template-columns:1fr}.variant-dimension-index,.variant-dimension-row label:nth-of-type(2),.variant-remove-dimension{grid-column:auto}.variant-dimension-index{display:none}.variant-remove-dimension{width:100%}.variant-parent-summary{grid-template-columns:1fr}.price-productivity-grid{grid-template-columns:1fr}.price-action-box{grid-template-columns:1fr}.price-action-box button{width:100%}.price-toggle-stack{align-items:flex-start;flex-direction:column;gap:4px}}
.price-list-tools{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:7px;margin-bottom:9px}.price-list-tools input,.price-list-tools select{width:100%;min-width:0;padding:8px 9px;border:1px solid #ccd4de;border-radius:8px;background:#fff;font:inherit;font-size:10px}
@media(max-width:680px){.price-list-tools{grid-template-columns:1fr}}


/* =========================================================
   v0.34.0 Batch B UI Round 2 — Dark-mode parity & control-center polish
   Visual/productivity only. No accounting, FIFO, GST posting or lifecycle changes.
   ========================================================= */

/* Dark-mode parity: later legacy selectors used hard-coded white surfaces. */
html[data-theme="dark"] .content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html[data-theme="dark"] .content select,
html[data-theme="dark"] .content textarea{
  background:var(--surface)!important;color:var(--text)!important;border-color:var(--line-strong)!important;color-scheme:dark
}
html[data-theme="dark"] .content input::placeholder,html[data-theme="dark"] .content textarea::placeholder{color:#7f91aa!important;opacity:1}
html[data-theme="dark"] .panel label input[type="date"],html[data-theme="dark"] .inventory-ledger-filters input,
html[data-theme="dark"] .banking-filters input,html[data-theme="dark"] .banking-filters select,
html[data-theme="dark"] .gst-period-form input,html[data-theme="dark"] .gst-register-filters input,
html[data-theme="dark"] .gst-register-filters select,html[data-theme="dark"] .gst-hsn-filters input,
html[data-theme="dark"] .gst-hsn-filters select{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line-strong)!important}
html[data-theme="dark"] .bank-account-card,html[data-theme="dark"] .gst-position,html[data-theme="dark"] .gst-control-status,
html[data-theme="dark"] .inventory-metric,html[data-theme="dark"] .tx-summary,html[data-theme="dark"] .tabs,
html[data-theme="dark"] .tab.active{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
html[data-theme="dark"] .bank-account-card *,html[data-theme="dark"] .gst-position *{text-shadow:none}

/* v0.34 surfaces originally used light-only fallbacks. */
html[data-theme="dark"] .master-summary-strip>div,html[data-theme="dark"] .master-control-card,
html[data-theme="dark"] .price-list-nav-item,html[data-theme="dark"] .variant-dimension-index,
html[data-theme="dark"] .variant-example-strip button{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
html[data-theme="dark"] .master-control-card.featured,html[data-theme="dark"] .price-list-nav-item.active{background:var(--accent-soft)!important;border-color:color-mix(in srgb,var(--accent) 42%,var(--line))!important}
html[data-theme="dark"] .variant-parent-picker select,html[data-theme="dark"] .variant-dimension-row input,
html[data-theme="dark"] .variant-dimension-row textarea,html[data-theme="dark"] .variant-commercial-grid input,
html[data-theme="dark"] .price-header-form-grid input,html[data-theme="dark"] .price-header-form-grid select,
html[data-theme="dark"] .price-action-box input,html[data-theme="dark"] .price-list-tools input,
html[data-theme="dark"] .price-list-tools select{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line-strong)!important}

/* Master Data governance workspace. */
.master-governance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.master-governance-summary>div{padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}
.master-governance-summary span,.master-governance-summary small{display:block;color:var(--muted);font-size:10px}.master-governance-summary strong{display:block;font-size:24px;margin:5px 0 3px}
.master-governance-grid{gap:16px}.master-governance-grid .master-panel{padding:17px}.master-governance-grid .section-head h2{margin:0;font-size:17px}.master-governance-grid .master-create-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.master-governance-grid .master-create-form.two{grid-template-columns:minmax(100px,.6fr) minmax(0,1fr) auto}.master-governance-grid .master-create-form input{min-width:0;width:100%}.master-governance-grid .master-list{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 35%,transparent)}

/* CRM Setup: compact three-control governance workspace. */
.crm-setup-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.crm-setup-summary>div{padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-sm)}.crm-setup-summary span,.crm-setup-summary small{display:block;color:var(--muted);font-size:10px}.crm-setup-summary strong{display:block;font-size:24px;margin:5px 0 3px}
.crm-setup-workspace{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(380px,1.35fr) minmax(260px,.8fr);gap:16px;align-items:start}.crm-setup-card{padding:17px;min-width:0}.crm-setup-card-head{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start;margin-bottom:14px}.crm-setup-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:900;font-size:11px}.crm-setup-card h2{margin:0 0 3px;font-size:16px}.crm-setup-card p{margin:0;font-size:11px}.crm-setup-create-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-bottom:12px}.crm-setup-create-row label,.crm-stage-form label{display:grid;gap:5px;font-size:10px;font-weight:750}.crm-setup-create-row input,.crm-stage-form input,.crm-stage-form select{width:100%;min-width:0}.crm-stage-form{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(90px,.55fr) minmax(110px,.7fr) minmax(85px,.5fr) auto;gap:8px;align-items:end;margin-bottom:12px}.crm-config-list{display:grid;border:1px solid var(--line);border-radius:11px;overflow:hidden}.crm-config-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border-bottom:1px solid var(--line);background:var(--surface)}.crm-config-row:last-child{border-bottom:0}.crm-config-row strong,.crm-config-row small{display:block}.crm-config-row strong{font-size:12px}.crm-config-row small{font-size:9px;color:var(--muted);margin-top:3px}.crm-config-row form{margin:0}.crm-config-row .button{min-height:30px;padding:5px 9px;font-size:10px}.crm-config-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.crm-config-badges span{padding:3px 6px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:9px;font-weight:750}.crm-config-empty{padding:18px;text-align:center;color:var(--muted);font-size:11px}

/* Audit Log: date range and filters are a compact control strip, not raw full-width rows. */
.audit-filter-panel{padding:14px 16px;margin-bottom:16px}.audit-filter-grid{display:grid;grid-template-columns:minmax(240px,1.4fr) 145px 145px minmax(130px,.75fr) minmax(135px,.8fr) minmax(135px,.8fr) auto;gap:9px;align-items:end}.audit-filter-grid label{display:grid;gap:5px;font-size:10px;font-weight:750;min-width:0}.audit-filter-grid label>span{color:var(--muted)}.audit-filter-grid input,.audit-filter-grid select{width:100%;min-width:0;height:38px;padding:8px 9px}.audit-filter-actions{display:flex;gap:7px;align-items:center}.audit-filter-actions .button{white-space:nowrap}.audit-activity-panel{padding:0;overflow:hidden}.audit-activity-panel>.section-head{padding:14px 16px;border-bottom:1px solid var(--line)}.audit-activity-panel>.section-head h2{margin:0}.audit-table-wrap{border-radius:0}.audit-table{min-width:980px}.audit-table th,.audit-table td{padding:10px 12px}.audit-date-cell{white-space:nowrap}.audit-ip-cell{max-width:210px;overflow-wrap:anywhere;font-size:10px}.audit-json pre{max-width:520px;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px}

/* Single Variant: same dynamic attribute language as the bulk builder. */
.single-variant-card .section-head{margin-bottom:12px}.single-variant-attributes{margin-top:2px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}.single-variant-attributes .variant-attribute-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.single-variant-attributes .variant-attribute-title small{color:var(--muted)}.single-attribute-list{display:grid;gap:7px}.single-attribute-row{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center}.single-attribute-row>span{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:800}.single-attribute-row input{width:100%;min-width:0}

@media(max-width:1280px){.crm-setup-workspace{grid-template-columns:1fr 1fr}.crm-stage-card{grid-column:1/-1}.audit-filter-grid{grid-template-columns:minmax(220px,1.4fr) 130px 130px repeat(3,minmax(120px,.7fr));}.audit-filter-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:900px){.master-governance-summary,.crm-setup-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.crm-setup-workspace{grid-template-columns:1fr}.crm-stage-card{grid-column:auto}.crm-stage-form{grid-template-columns:1fr 1fr}.crm-stage-form .crm-stage-name{grid-column:1/-1}.crm-stage-form button{grid-column:1/-1}.audit-filter-grid{grid-template-columns:1fr 1fr}.audit-query{grid-column:1/-1}.audit-filter-actions{grid-column:1/-1}.master-governance-grid .master-create-form.two{grid-template-columns:1fr 1fr auto}}
@media(max-width:620px){.master-governance-summary,.crm-setup-summary{grid-template-columns:1fr}.master-governance-grid .master-create-form,.master-governance-grid .master-create-form.two,.crm-setup-create-row,.crm-stage-form,.audit-filter-grid{grid-template-columns:1fr}.audit-query,.audit-filter-actions,.crm-stage-form .crm-stage-name,.crm-stage-form button{grid-column:auto}.audit-filter-actions{justify-content:stretch}.audit-filter-actions>*{flex:1}.single-attribute-row{grid-template-columns:1fr}.single-attribute-row>span{display:none}}

/* =========================================================
   v0.34.0 UI Round 3 — consistency, dark-mode parity & navigation continuity
   Presentation/navigation only. No posting, accounting, FIFO, GST or permission logic changes.
   ========================================================= */

/* Consistent control sizing across legacy and newer forms. Keep compact table/editor controls
   usable without allowing browser-default tiny inputs to reappear on isolated screens. */
.content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="file"]),
.content select{
  min-height:40px;max-width:100%;padding:9px 11px;border:1px solid var(--line-strong);border-radius:9px;
  background:var(--surface);color:var(--text);font:inherit;line-height:1.25
}
.content textarea{
  width:100%;max-width:100%;min-height:84px;padding:10px 11px;border:1px solid var(--line-strong);border-radius:9px;
  background:var(--surface);color:var(--text);font:inherit;line-height:1.45;resize:vertical
}
.content input[type="file"]{max-width:100%;min-height:40px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--text)}
.content input::placeholder,.content textarea::placeholder{color:var(--muted);opacity:.82}

/* Professional Masters cards are peers. Do not arbitrarily emphasize three workflows at once. */
.master-control-card{background:var(--surface);border-color:var(--line)}
.master-control-card.featured{background:var(--surface);border-color:var(--line);box-shadow:none}
html[data-theme="dark"] .master-control-card.featured{background:var(--surface)!important;border-color:var(--line)!important}

/* CRM Setup compact controls: same visual height and rhythm for source/stage/reason creation. */
.crm-setup-create-row input,.crm-stage-form input,.crm-stage-form select{min-height:40px;padding:9px 10px;border-radius:9px}
.crm-setup-create-row .button,.crm-stage-form .button{min-height:40px}
.crm-setup-card{overflow:hidden}.crm-config-list{min-width:0}.crm-config-row{min-width:0}

/* Inventory Accounting: restore a deliberate section gap before reconciliation/FIFO layers. */
.inventory-accounting-grid{margin-bottom:18px}
.inventory-accounting-followup{margin-top:18px}
.inventory-accounting-followup .section-head{gap:14px;flex-wrap:wrap}
.inventory-accounting-followup .section-head p{margin:4px 0 0}

/* Outstanding Control used hard-coded light metric/reconciliation surfaces in the legacy layer. */
html[data-theme="dark"] .outstanding-card-metrics>div,
html[data-theme="dark"] .control-total,
html[data-theme="dark"] .statement-opening td{
  background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--line)!important
}
html[data-theme="dark"] .control-recon>div{border-color:var(--line)!important}

/* Expense Voucher dark-mode parity for GST/ITC and totals. */
html[data-theme="dark"] .expense-gst-section{background:transparent!important}
html[data-theme="dark"] .expense-itc-check .check-row,
html[data-theme="dark"] .expense-tax-table input,
html[data-theme="dark"] .expense-tax-table select{
  background:var(--surface)!important;color:var(--text)!important;border-color:var(--line-strong)!important
}
html[data-theme="dark"] .expense-gst-summary>div{
  background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--line)!important
}
html[data-theme="dark"] .expense-gst-summary .grand{
  background:var(--accent-soft)!important;border-color:color-mix(in srgb,var(--accent) 28%,var(--line))!important
}

/* Journal Voucher: narration is a real full-width field; allocation controls use balanced columns
   instead of browser-default tiny/tall controls or oversized ledger columns. */
.journal-voucher-card{min-width:0}
.journal-voucher-card .form-section{min-width:0}
.journal-narration-field{display:grid;gap:6px;margin-top:14px;font-size:12px;font-weight:600}
.journal-narration-field textarea{width:100%;min-height:88px}
.journal-editor{border:1px solid var(--line);border-radius:11px;overflow:auto}
.journal-allocation-table{min-width:860px;table-layout:fixed;margin:0}
.journal-allocation-table th:nth-child(1){width:31%}
.journal-allocation-table th:nth-child(2){width:31%}
.journal-allocation-table th:nth-child(3),.journal-allocation-table th:nth-child(4){width:16%}
.journal-allocation-table th:nth-child(5){width:52px}
.journal-allocation-table input,.journal-allocation-table select{
  width:100%;min-width:0;min-height:38px;padding:8px 9px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--text);font:inherit
}
.journal-allocation-table td:last-child,.journal-allocation-table th:last-child{text-align:center}
.journal-allocation-table .icon-button{margin-inline:auto}

/* Dark-mode defensive parity for any remaining light-only summary cells on finance/inventory forms. */
html[data-theme="dark"] .expense-gst-summary>div *,
html[data-theme="dark"] .outstanding-card-metrics>div *{text-shadow:none}

@media(max-width:900px){
  .inventory-accounting-grid{margin-bottom:14px}.inventory-accounting-followup{margin-top:14px}
  .journal-allocation-table{min-width:780px}
}

/* =========================================================
   v0.34.0 UI Round 4 — residual dark-mode parity + form geometry
   Presentation only. Sidebar accordion/scroll persistence and all accounting/FIFO/GST logic remain unchanged.
   ========================================================= */

/* Provide dark aliases used by older/newer UI layers so fallback values never resolve to white. */
html[data-theme="dark"]{
  --panel:var(--surface);
  --input:var(--surface);
  --border:var(--line);
  --soft:var(--surface-2);
  --surface-soft:var(--surface-2);
}

/* Organization switcher is already correct at rest; hover/focus must stay inside the dark header palette. */
html[data-theme="dark"] .company-switch-link:hover,
html[data-theme="dark"] .company-switch-link:focus-visible{
  background:var(--surface-2)!important;
  color:var(--text)!important;
  box-shadow:inset 0 0 0 1px var(--line);
}
html[data-theme="dark"] .company-switch-link:hover .switch-mark,
html[data-theme="dark"] .company-switch-link:focus-visible .switch-mark{color:var(--muted)!important}

/* Outstanding dashboard: remove remaining hard-coded light metric/control surfaces. */
html[data-theme="dark"] .content .outstanding-control-card .outstanding-card-metrics>div,
html[data-theme="dark"] .content .outstanding-control-card .control-recon>.control-total{
  background-color:var(--surface-2)!important;
  background-image:none!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
  box-shadow:none!important;
}
html[data-theme="dark"] .content .outstanding-control-card .outstanding-card-metrics>div span,
html[data-theme="dark"] .content .outstanding-control-card .control-recon>.control-total span{color:var(--muted)!important}
html[data-theme="dark"] .content .outstanding-control-card .outstanding-card-metrics>div strong,
html[data-theme="dark"] .content .outstanding-control-card .control-recon>.control-total strong{color:var(--text)!important}

/* Expense voucher: the GST/ITC workspace must be a native dark surface, not a white legacy gradient. */
html[data-theme="dark"] .content #expense-form .expense-gst-section{
  background:var(--surface-2)!important;
  background-image:none!important;
  border:1px solid var(--line)!important;
  border-radius:12px;
  padding:16px!important;
}
html[data-theme="dark"] .content #expense-form .expense-gst-section .expense-itc-check .check-row{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--line-strong)!important;
}
html[data-theme="dark"] .content #expense-form .expense-gst-section .expense-itc-note{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}
html[data-theme="dark"] .content #expense-form .expense-gst-summary>div{
  background:var(--surface-2)!important;
  color:var(--text)!important;
  border-color:var(--line)!important;
}

/* Journal Voucher: force a stable block narration field and comfortable allocation controls. */
.journal-voucher-card .journal-narration-block{display:block;width:100%;margin-top:14px;min-width:0}
.journal-voucher-card .journal-narration-block>label{display:block;margin:0 0 6px;font-size:12px;font-weight:700;color:var(--text)}
.journal-voucher-card .journal-narration-block>textarea{
  display:block;width:100%!important;max-width:none!important;min-width:0!important;min-height:92px!important;
  margin:0!important;padding:10px 11px!important;border:1px solid var(--line-strong)!important;border-radius:9px!important;
  background:var(--surface)!important;color:var(--text)!important;resize:vertical
}
.journal-voucher-card .journal-allocation-table input,
.journal-voucher-card .journal-allocation-table select{
  min-height:40px!important;height:40px;padding:8px 10px!important;border-radius:9px!important
}
.journal-voucher-card .journal-allocation-table .money-input{text-align:right;font-variant-numeric:tabular-nums}

@media(max-width:760px){
  .journal-voucher-card .journal-narration-block>textarea{min-height:84px!important}
}

