/* 0.16.1 — compact, accessible actions in record tables. */
body .table .table-actions-cell { white-space:nowrap; }
body .table .table-action-group { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; width:max-content; }
body .table .table-action-button[data-compact-action] {
  --action-bg:var(--soft-blue,#2e374b); --action-ink:var(--soft-blue-ink,#b0cefa); --action-border:var(--soft-blue-border,#50617b);
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px;
  width:44px; min-width:44px; height:44px; min-height:44px; padding:0;
  border:1px solid var(--action-border)!important; border-radius:9px;
  background:var(--action-bg)!important; color:var(--action-ink)!important; vertical-align:middle;
}
body .table .table-action-button.action-payment,body .table .table-action-button.action-convert { --action-bg:var(--soft-green); --action-ink:var(--soft-green-ink); --action-border:var(--soft-green-border); }
body .table .table-action-button.action-edit,body .table .table-action-button.action-manage { --action-bg:var(--soft-purple); --action-ink:var(--soft-purple-ink); --action-border:var(--soft-purple-border); }
body .table .table-action-button.action-review { --action-bg:var(--soft-amber); --action-ink:var(--soft-amber-ink); --action-border:var(--soft-amber-border); }
.table-action-button svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
body .table .table-action-button:hover { filter:brightness(1.12); }
body .table .table-action-button:focus-visible { outline:3px solid #bca0ff; outline-offset:3px; }
body .table .table-action-button:disabled { opacity:.5; cursor:default; filter:none; }
.table-action-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
/* Keep progress feedback visible if a table action is temporarily busy. */
body .table .table-action-button[aria-busy="true"] { width:auto; flex-basis:auto; padding-inline:12px; }
.topbar #accountControls .desktop-store-name { display:block; max-width:min(220px,18vw); color:inherit; font-size:14px; font-weight:700; line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:900px) { .topbar #accountControls .desktop-store-name { display:none; } }
@media(forced-colors:active) { body .table .table-action-button { background:ButtonFace!important; color:ButtonText!important; border-color:ButtonText!important; } }

/* Tooltips live above the table so scrolling containers cannot clip them. */
.action-tooltip { position:fixed; z-index:160; max-width:min(260px,calc(100vw - 24px)); padding:9px 12px; border:1px solid #655276; border-radius:10px; background:#393342; color:#f5f1fa; box-shadow:0 6px 20px #17101f35; font-size:12px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; pointer-events:none; animation:action-tooltip-in .12s ease-out; }
.action-tooltip[hidden] { display:none; }
body.light-theme .action-tooltip { background:#fff; border-color:#ded0ee; color:#52317e; box-shadow:0 6px 20px #37285218; }
@keyframes action-tooltip-in { from { opacity:0; transform:translateY(2px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .action-tooltip { animation:none; } }
@media(forced-colors:active) { .action-tooltip { background:Canvas; color:CanvasText; border-color:CanvasText; } }

/* 0.16.3 — bounded dialogs and record cards on narrow screens. */
.modal { grid-template-columns:minmax(0,1fr); }
.modal-card,#modalBody { min-width:0; max-width:100%; }
.modal-card :is(.form,.field,.form-grid,.sale-header-grid,.sale-editor-grid,.sale-credit-grid,.purchase-editor-grid) { min-width:0; }
.modal-card .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.modal-card :is(.input,.select,textarea) { min-width:0; max-width:100%; }
.modal-card :is(p,h2,h3,label,.notice-copy,.list-item,.business-receipt) { overflow-wrap:anywhere; }
.modal-card .actions { min-width:0; }
.modal-card .btn { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
body .due-date { display:inline; padding:0; background:none; border:none; border-radius:0; font:inherit; font-weight:600; color:var(--soft-amber-ink); white-space:normal; }
body .due-date.overdue-date { color:var(--soft-red-ink); }
.field-feedback { display:block; width:100%; margin-top:6px; color:var(--soft-amber-ink); font-size:13px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; }
body :is(.input,.select,textarea).field-invalid { border-color:var(--soft-amber-ink); box-shadow:0 0 0 2px color-mix(in srgb,var(--soft-amber-ink) 14%,transparent); }
.mobile-table-sort { display:none; }
@media(max-width:640px) {
  .modal { padding:12px; }
  .modal-card { padding:20px 16px; max-height:calc(100dvh - 24px); }
  .modal-card .form-grid { grid-template-columns:minmax(0,1fr); }
  #modalBody,.modal-card .form>* { min-width:0; }
  body .table-wrap:has(>.mobile-record-table) { overflow:visible; }
  body .table.mobile-record-table { display:block; width:100%; min-width:0!important; max-width:100%; }
  body .mobile-record-table :is(thead,tbody,tfoot) { display:block; }
  body .mobile-record-table .mobile-record-header { display:none; }
  body .mobile-record-table .mobile-record-row { display:block; min-width:0; padding:12px 0; border-bottom:1px solid var(--border,#494253); }
  body .mobile-record-table .mobile-record-row:last-child { border-bottom:0; }
  body .table.mobile-record-table td { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; gap:10px; width:100%; min-width:0; max-width:100%; padding:7px 0; border:0; white-space:normal; overflow-wrap:anywhere; font-size:14px; }
  .mobile-record-table td::before { content:attr(data-mobile-label); color:var(--muted,#c0b8cf); font-size:12px; font-weight:600; }
  body .table.mobile-record-table td>* { min-width:0; max-width:100%; }
  body .table.mobile-record-table td.mobile-actions-cell { grid-template-columns:minmax(0,1fr); gap:8px; }
  body .table.mobile-record-table .table-action-group { width:auto; flex-wrap:wrap; }
  body .table.mobile-record-table td.mobile-full-cell { display:block; }
  .mobile-record-table td.mobile-full-cell::before { content:none; }
  body .mobile-record-table :is(.management-cell,.badge,.product-variation) { white-space:normal; max-width:100%; overflow-wrap:anywhere; }
  .mobile-table-sort { display:flex; align-items:flex-end; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
  .mobile-table-sort label { display:grid; gap:5px; flex:1 1 150px; min-width:0; font-size:12px; color:var(--muted,#c0b8cf); }
  .mobile-table-sort select { min-width:0; font-size:14px; }
  .mobile-table-sort button { flex:0 1 auto; min-height:42px; padding:9px 10px; font-size:12px; }
  body .modal-card :is(.customer-head,.list-item,.sale-row-details) { flex-wrap:wrap; min-width:0; }
}

.mobile-cell-value { display:contents; }
@media(max-width:640px) { .mobile-cell-value { display:block; min-width:0; } }

/* The light input background must not reset the select arrow to a repeating image. */
body.light-theme :is(select.select,select.input) { background-repeat:no-repeat; background-size:16px 16px; background-position:right 16px center; }
body :is(.input,.select,textarea).field-invalid { border-color:var(--soft-amber-ink)!important; }

body.light-theme .mobile-record-table td::before,body.light-theme .mobile-table-sort label,body.light-theme .modal-card .field label { color:#626a77; }

/* 0.16.5 — status and amount labels use text, matching the surrounding values. */
body :is(.badge,.billing-status) {
  display:inline; padding:0!important; border:0!important; border-radius:0!important;
  background:transparent!important; box-shadow:none!important;
  font-size:inherit!important; font-weight:600; line-height:inherit;
}
body :is(.badge.paid,.badge.ok,.billing-status:not(.neutral):not(.warning)) { color:var(--soft-green-ink)!important; }
body .badge.debt { color:var(--soft-red-ink)!important; }
body :is(.badge.low,.billing-status.warning) { color:var(--soft-amber-ink)!important; }
body :is(.admin-plan-badge,.receivables-intro-plan) { color:var(--soft-purple-ink)!important; }
body .billing-status.neutral { color:inherit; }
body.light-theme .badge:not(.paid):not(.ok):not(.debt):not(.low):not(.admin-plan-badge):not(.receivables-intro-plan) { color:#626a77; }
