/* 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);
  position:relative; 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; }
.customer-whatsapp-action { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; }
body .customer-whatsapp-action>svg { flex:none; width:21px; height:21px; fill:currentColor; stroke:none; }
body .customer-detail-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; }
body .customer-detail-actions>.customer-sale-action { min-width:0; min-height:44px; white-space:nowrap; }
@media(max-width:640px) {
  body .customer-detail-actions { gap:6px; }
  #modalBody .customer-detail-actions>.customer-sale-action { flex:1; padding-inline:8px; white-space:nowrap; }
}
/* 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; } }

/* Bounded dialogs and fields 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:nowrap; }
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); }
@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 .modal-card :is(.customer-head,.list-item,.sale-row-details) { flex-wrap:wrap; 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 .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; }
/* Shared square actions outside record tables, including copy and refresh. */
body .btn.compact-action {
 display:inline-flex; align-items:center; justify-content:center; flex:none;
 width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border-radius:9px;
 background:var(--action-bg,var(--soft-blue))!important; color:var(--action-ink,var(--soft-blue-ink))!important; border:1px solid var(--action-border,var(--soft-blue-border))!important;
}
body .btn.compact-action.danger { background:var(--action-bg,var(--soft-red))!important; color:var(--action-ink,var(--soft-red-ink))!important; border-color:var(--action-border,var(--soft-red-border))!important; }
.compact-action svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.compact-action:hover { filter:brightness(1.1); }
.compact-action:focus-visible { outline:3px solid var(--soft-purple-ink); outline-offset:3px; }
@media(forced-colors:active) { body .btn.compact-action,body .btn.compact-action.danger { background:ButtonFace!important; color:ButtonText!important; border-color:ButtonText!important; } }

/* A single palette for an action, regardless of the page or button shape. */
button[data-action-tone="blue"] { --action-bg:var(--soft-blue)!important; --action-ink:var(--soft-blue-ink)!important; --action-border:var(--soft-blue-border)!important; }
button[data-action-tone="green"] { --action-bg:var(--soft-green)!important; --action-ink:var(--soft-green-ink)!important; --action-border:var(--soft-green-border)!important; }
button[data-action-tone="purple"] { --action-bg:var(--soft-purple)!important; --action-ink:var(--soft-purple-ink)!important; --action-border:var(--soft-purple-border)!important; }
button[data-action-tone="red"] { --action-bg:var(--soft-red)!important; --action-ink:var(--soft-red-ink)!important; --action-border:var(--soft-red-border)!important; }
button[data-action-tone="expense"] { --action-bg:var(--soft-red)!important; --action-ink:var(--soft-red-ink)!important; --action-border:var(--soft-red-border)!important; }
button[data-action-tone="amber"] { --action-bg:var(--soft-amber)!important; --action-ink:var(--soft-amber-ink)!important; --action-border:var(--soft-amber-border)!important; }
body button[data-action-tone] { background:var(--action-bg)!important; color:var(--action-ink)!important; border:1px solid var(--action-border)!important; }
body button[data-action-tone]:hover:not(:disabled) { filter:brightness(1.1); }
body button[data-action-tone]:focus-visible { outline:3px solid var(--action-ink); outline-offset:3px; }
/* Account navigation shares one borderless highlight, including Edit profile. */
body .profile-menu>button { border:1px solid transparent; }
body .profile-menu>button:focus-visible { outline:2px solid var(--soft-purple-ink); outline-offset:-2px; }
body:not(.light-theme) .profile-menu>button:focus-visible { background:#40334f; color:#ede2ff; }
body.light-theme .profile-menu>button:is(:hover,:focus-visible) { background:#edf0f4; color:#17191c; }
@media(forced-colors:active) { body button[data-action-tone] { background:ButtonFace!important; color:ButtonText!important; border-color:ButtonText!important; } }
