.ui-icon { width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; vertical-align: middle; }
button > .ui-icon { margin-inline-end: .45rem; }
.sidebar-toggle > .ui-icon { margin: 0; }
.workspace-launcher > a > .ui-icon { color: var(--tshop-brand); width: 1.6rem; height: 1.6rem; }
.sidebar-group-toggle { display: flex; align-items: center; gap: .6rem; width: 100%; min-height: 48px; padding: .85rem .65rem; color: #d9e9de; background: transparent; border: 0; border-block-end: 1px solid #41634d; text-align: start; font: inherit; font-weight: 700; }
.sidebar-group-toggle > .ui-icon { margin: 0; }
.sidebar-group-toggle .ui-chevron { margin-inline-start: auto; width: 1rem; height: 1rem; transform: rotate(90deg); }
.sidebar-group-toggle[aria-expanded="true"] .ui-chevron { transform: rotate(0); }
.sidebar-group-panel { display: grid; gap: .25rem; padding-block: .4rem; }
.sidebar-group-toggle:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ui-help-button { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; color: var(--tshop-brand); background: var(--tshop-brand-soft); vertical-align: middle; }
.ui-help-button .ui-icon { margin: 0; }
.tshop-help { --bs-popover-font-size: 1rem; --bs-popover-max-width: min(320px, calc(100vw - 32px)); --bs-popover-body-color: var(--tshop-ink); --bs-popover-border-color: var(--tshop-border); --bs-popover-border-radius: .75rem; font-family: var(--tshop-font); line-height: 1.8; text-align: start; }
.tshop-help .popover-body { padding: 1rem; }
@media(min-width:992px) {
    .sidebar-toggle { display: grid; place-items: center; }
    .sidebar-compact .application-shell { grid-template-columns: 4.75rem minmax(0,1fr); }
    .sidebar-compact .app-sidebar { width: 4.75rem; }
    .sidebar-compact .sidebar-brand { justify-content: center; padding-inline: .5rem; }
    .sidebar-compact .sidebar-brand > span:nth-child(2), .sidebar-compact .sidebar-footer > span,
    .sidebar-compact .sidebar-nav a > span:nth-child(2), .sidebar-compact .sidebar-group-toggle > span,
    .sidebar-compact .sidebar-group-toggle > .ui-chevron { display: none; }
    .sidebar-compact .sidebar-nav { padding-inline: .4rem; }
    .sidebar-compact .sidebar-nav a, .sidebar-compact .sidebar-group-toggle { justify-content: center; padding-inline: .5rem; }
    .sidebar-compact .sidebar-footer { padding-inline: .35rem; }
    .sidebar-compact .sidebar-footer button { font-size: .875rem; }
}

/* Shared compact workspace: keep readable text and 44px action targets. */
.application-main { padding: clamp(1rem, 2vw, 1.5rem); }
.workspace-header { gap: .75rem; padding-block-end: .75rem; }
.workspace-header > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem 1rem; min-width: 0; }
.workspace-header .section-kicker { display: none; }
.workspace-header h2 { margin: 0; font-size: 1.1rem; line-height: 1.5; }
.workspace-header p { font-size: .875rem; }
.workspace-section { padding-block-start: 1rem; }
.workspace-section__heading { gap: .75rem; align-items: center; }
.workspace-section__heading > div { min-width: 0; }
.workspace-section__heading > div > .section-kicker { display: none; }
.workspace-section__heading h3 { margin: 0; font-size: 1.35rem; line-height: 1.5; }
.workspace-section__heading p { margin-block-start: .15rem; font-size: .9375rem; line-height: 1.6; }
.workspace-section__heading > .btn { flex-shrink: 0; min-height: 44px; }
.entity-toolbar, .users-toolbar { margin-block: .875rem; padding: .75rem; gap: .625rem; }
.entity-toolbar .form-control, .entity-toolbar .form-select,
.users-toolbar .form-control, .users-toolbar .form-select { min-height: 2.75rem; }
.sidebar-footer .app-footer { margin: 0; padding: .25rem 0 0; color: rgba(255,255,255,.75); font-size: .75rem; line-height: 1.5; }
.sidebar-footer .pwa-install-button { color: #fff; border-color: rgba(255,255,255,.5); min-height: 44px; }
@media (min-width: 992px) {
    .sidebar-compact .app-footer > span { display: none; }
}
@media (max-width: 575.98px) {
    .workspace-header { flex-direction: row; align-items: center; }
    .workspace-section__heading { flex-direction: row; flex-wrap: wrap; align-items: center; }
    .workspace-section__heading > div { flex: 1 1 12rem; }
    .workspace-section__heading > .btn { width: auto; }
}

/* Shared record, summary and table patterns for operational modules. */
.ui-record-list { display: grid; gap: .625rem; }
.ui-record { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; padding: .875rem 1rem; border: 1px solid var(--tshop-border); border-radius: .75rem; background: #fff; }
.ui-record-identity { flex: 1 1 18rem; min-width: 0; }
.ui-record-title { margin: 0; font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
.ui-record-identity p { margin: .2rem 0 0; color: var(--tshop-muted); font-size: .875rem; overflow-wrap: anywhere; }
.ui-record > .btn { min-height: 44px; }
.ui-state { display: inline-block; padding: .25rem .65rem; border-radius: 1rem; background: var(--tshop-canvas); color: var(--tshop-muted); font-size: .875rem; font-weight: 700; }
.ui-state[data-state="open"] { background: var(--tshop-brand-soft); color: var(--tshop-brand); }
.ui-summary-groups { display: grid; gap: .875rem; margin-block-start: .875rem; }
.ui-detail-group { border-block-start: 1px solid var(--tshop-border); padding-block-start: .75rem; min-width: 0; }
.ui-detail-group h5 { font-size: .9375rem; font-weight: 700; margin: 0 0 .6rem; }
.ui-detail-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap: .625rem 1rem; }
.ui-detail-grid .entity-detail { min-width: 0; overflow-wrap: anywhere; }
.ui-detail--numeric strong, .ui-number { direction: ltr; unicode-bidi: isolate; font-variant-numeric: tabular-nums; text-align: start; }
.ui-detail--numeric strong { width: fit-content; }
.ui-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--tshop-border); border-radius: .65rem; }
.ui-data-table { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: .9375rem; }
.ui-data-table th, .ui-data-table td { padding: .65rem .75rem; text-align: start; border-block-end: 1px solid var(--tshop-border); overflow-wrap: anywhere; max-width: 22rem; }
.ui-data-table th { background: var(--tshop-brand-soft); }
.ui-data-table tbody tr:last-child td { border-block-end: 0; }
.ui-empty-note { margin: 0; color: var(--tshop-muted); font-size: .9375rem; }
.ui-card-compact { padding: .875rem; gap: .625rem; }
.ui-card-compact .entity-card__details { gap: .5rem .875rem; }
.ui-card-compact .entity-card__actions { padding-block-start: .625rem; }
.cash-current { padding: .75rem 1rem; margin-block: .875rem; }
.cash-detail { margin-block-start: 1rem; }
.sale-dialog .form-grid { gap: .75rem; }
.sale-dialog .sale-summary { margin-block: .875rem; padding: .75rem; }
.sale-dialog .sale-summary span, .sale-dialog .sale-payments legend { font-size: .9375rem; }
.sale-dialog .sale-payments { margin-block: .875rem; padding: .75rem; min-width: 0; }
.sale-payment-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.sale-dialog .sale-payment-row { display: flex; flex-direction: column; gap: .625rem; margin: 0; padding: .75rem; border: 1px solid var(--tshop-border); border-radius: .65rem; }
.sale-dialog .sale-payment-total { margin-block-start: .75rem; }
.sale-dialog .sale-line-editor { grid-template-columns: minmax(0,2fr) minmax(5rem,.5fr) minmax(6rem,.6fr) auto; }
.sale-dialog input[type="number"], .sale-dialog [data-role="subtotal"], .sale-dialog [data-role="total"] { font-variant-numeric: tabular-nums; }
@media(max-width:767.98px) {
    .sale-payment-grid { grid-template-columns: minmax(0,1fr); }
    .sale-dialog .sale-line-editor { grid-template-columns: minmax(0,1fr); }
}

/* Catalog and inventory reuse the compact operational patterns. */
.ui-card-compact { grid-template-rows: auto 1fr auto; }
.ui-card-compact .entity-card__details { align-content: start; }
.ui-card-compact .entity-card__header > div { min-width: 0; }
.ui-card-compact .entity-card__header p { direction: inherit; text-align: start; }
.ui-card-compact .entity-card__actions { align-self: end; }
.ui-form-compact form { padding: clamp(1rem,2vw,1.4rem); }
.ui-form-compact .dialog-header { margin-block-end: .875rem; }
.ui-form-compact .dialog-header h2 { font-size: 1.35rem; }
.ui-form-compact .dialog-header .section-kicker { display: none; }
.ui-form-compact .dialog-grid, .ui-form-compact .form-grid { gap: .75rem; }
.ui-form-compact .inventory-lines-heading { margin-block: 1rem .625rem; flex-wrap: wrap; }
.ui-form-compact .form-control, .ui-form-compact .form-select { min-height: 2.75rem; }
.ui-form-compact.inventory-dialog { width: min(calc(100% - 2rem),62rem); }
.ui-form-compact .inventory-line-editor { grid-template-columns: minmax(0,2fr) minmax(6rem,.7fr) minmax(6rem,.7fr) auto; }
.ui-form-compact .inventory-line-editor:has(> :nth-child(3):last-child) { grid-template-columns: minmax(0,2fr) minmax(6rem,.7fr) auto; }
.ui-form-compact .inventory-line-editor .btn { min-height: 44px; }
.inventory-table-wrap.ui-table-scroll .inventory-table { font-size: .9375rem; }
.inventory-table-wrap.ui-table-scroll th, .inventory-table-wrap.ui-table-scroll td { padding: .625rem .75rem; }
.inventory-table-wrap.ui-table-scroll .ltr-cell { font-variant-numeric: tabular-nums; unicode-bidi: isolate; }
.inventory-documents > .workspace-meta { margin-block-start: .875rem; }
@media(max-width:767.98px) {
    .ui-form-compact .inventory-line-editor,
    .ui-form-compact .inventory-line-editor:has(> :nth-child(3):last-child) { grid-template-columns: minmax(0,1fr); }
}

/* One icon size and logical spacing for all labeled actions. */
a.btn > .ui-icon { margin-inline-end: .45rem; }
.dialog-close > .ui-icon, .sidebar-close > .ui-icon { margin: 0; }
.btn > .ui-icon, .pwa-install-button > .ui-icon { pointer-events: none; }

/* Inventory identity cells: one SKU, readable attributes and isolated numbers. */
.inventory-table .ui-table-identity { min-width: 9rem; max-width: 22rem; overflow-wrap: anywhere; }
.inventory-table .ui-table-identity > strong,
.inventory-table .ui-table-identity > span,
.inventory-table .ui-table-identity > bdi { display: block; line-height: 1.6; }
.inventory-table .ui-table-identity > span,
.inventory-table .ui-table-identity > bdi { color: var(--tshop-muted); font-size: .875rem; }
.inventory-table .ui-table-number,
.inventory-table .ui-table-code { direction: ltr; unicode-bidi: isolate; white-space: nowrap; font-variant-numeric: tabular-nums; }
.inventory-table .ui-table-date > bdi { display: block; white-space: nowrap; font-variant-numeric: tabular-nums; }
