/* Shared Fineasy utility action and tab system. Primary save/approval and destructive controls are intentionally excluded. */
.app-action-toolbar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  min-width:0;
}

.app-action-tab{
  appearance:none;
  min-height:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 14px;
  border:1px solid #c9d6df;
  border-radius:8px;
  background:#eef3f6;
  color:#173448;
  box-shadow:none;
  font-size:13px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease;
}

.app-action-tab:hover:not(:disabled):not([aria-disabled="true"]){
  background:#e2ebf0;
  border-color:#9fb5c4;
  color:#0d2b40;
}

.app-action-tab.active,
.app-action-tab[aria-selected="true"],
.app-action-tab--active{
  background:#dcebf4;
  border-color:#739eb9;
  color:#0b3652;
  font-weight:800;
}

.app-action-tab--accent{
  background:#15191c;
  border-color:#15191c;
  color:#fff;
}

.app-action-tab--accent:hover:not(:disabled){
  background:#2a3034;
  border-color:#2a3034;
  color:#fff;
}

.app-action-tab:disabled,
.app-action-tab[aria-disabled="true"],
.app-action-tab--disabled{
  background:#edf0f2;
  border-color:#d9e0e4;
  color:#88969e;
  cursor:not-allowed;
  opacity:.65;
  pointer-events:none;
}

.app-action-tab:focus-visible{
  outline:3px solid rgba(0,143,121,.28);
  outline-offset:2px;
}

.app-action-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.app-action-icon svg{
  width:16px;
  height:16px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Existing tab bars keep their layout while using the same control surface. */
.tx-tabs .app-action-tab,.pc-tabs .app-action-tab,.financial-tabs .app-action-tab,
.movement-tabs .app-action-tab,.queue-tabs .app-action-tab{
  border:1px solid #c9d6df;
  border-radius:8px;
  padding:0 14px;
  background:#eef3f6;
  color:#173448;
}

.tx-tabs .app-action-tab.active,.pc-tabs .app-action-tab.active,
.financial-tabs .app-action-tab.active,.movement-tabs .app-action-tab.active,
.queue-tabs .app-action-tab.active{
  background:#dcebf4;
  border-color:#739eb9;
  color:#0b3652;
}

@media(max-width:850px){
  .app-action-toolbar{align-items:stretch}
  .app-action-tab{min-height:40px}
}

@media(max-width:560px){
  .app-action-toolbar{width:100%;gap:8px}
  .app-action-toolbar>.app-action-tab{flex:1 1 auto;min-width:max-content}
}

@media(prefers-reduced-motion:reduce){.app-action-tab{transition:none}}

/* Azure Lime design system: shared semantic controls and interaction tokens. */
:root{
  --az-primary-bg:#111827;--az-primary-hover:#1f2937;--az-primary-text:#fff;--az-primary-border:#111827;
  --az-action-bg:#0891b2;--az-action-hover:#0e7490;--az-action-text:#fff;--az-action-border:#0891b2;
  --az-excel-bg:#ecfdf5;--az-excel-hover:#d1fae5;--az-excel-text:#047857;--az-excel-border:#6ee7b7;
  --az-pdf-bg:#fff1f2;--az-pdf-hover:#ffe4e6;--az-pdf-text:#dc2626;--az-pdf-border:#fda4af;
  --az-agreement-bg:#f5f3ff;--az-agreement-hover:#ede9fe;--az-agreement-text:#6d28d9;--az-agreement-border:#c4b5fd;
  --az-neutral-bg:#f1f5f9;--az-neutral-hover:#e2e8f0;--az-neutral-text:#334155;--az-neutral-border:#cbd5e1;
  --az-aqua-bg:#ecfeff;--az-aqua-hover:#cffafe;--az-aqua-text:#0f766e;--az-aqua-border:#67e8f9;
  --az-warning-bg:#fff7ed;--az-warning-hover:#ffedd5;--az-warning-text:#c2410c;--az-warning-border:#fdba74;
  --az-danger-bg:#dc2626;--az-danger-hover:#b91c1c;--az-danger-text:#fff;--az-danger-border:#dc2626;
  --az-disabled-bg:#f1f5f9;--az-disabled-text:#94a3b8;--az-disabled-border:#e2e8f0;
  --az-tab-active-bg:#ecfeff;--az-tab-active-border:#0891b2;--az-tab-active-text:#0c4a6e;
  --az-control-height:38px;--az-control-radius:8px;--az-control-gap:8px;--az-focus:0 0 0 3px rgba(8,145,178,.24);
}

.app-button,.primary,.secondary,.ghost,.danger,
.app-action-toolbar>button,.app-action-toolbar>a{
  min-height:var(--az-control-height);height:var(--az-control-height);min-width:max-content;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 15px;
  border:1px solid var(--az-neutral-border);border-radius:var(--az-control-radius);
  font-size:13px;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;
  box-shadow:0 1px 2px rgba(15,23,42,.06);transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease;
}
.app-button .app-action-icon{width:16px;height:16px;flex:0 0 16px}.app-button .app-action-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app-button--primary{background:var(--az-primary-bg)!important;border-color:var(--az-primary-border)!important;color:var(--az-primary-text)!important}
.app-button--primary:hover:not(:disabled){background:var(--az-primary-hover)!important;border-color:var(--az-primary-hover)!important}
.app-button--apply{background:var(--az-action-bg)!important;border-color:var(--az-action-border)!important;color:var(--az-action-text)!important}
.app-button--apply:hover:not(:disabled){background:var(--az-action-hover)!important;border-color:var(--az-action-hover)!important}
.app-button--excel{background:var(--az-excel-bg)!important;border-color:var(--az-excel-border)!important;color:var(--az-excel-text)!important}
.app-button--excel:hover:not(:disabled){background:var(--az-excel-hover)!important}
.app-button--pdf{background:var(--az-pdf-bg)!important;border-color:var(--az-pdf-border)!important;color:var(--az-pdf-text)!important}
.app-button--pdf:hover:not(:disabled){background:var(--az-pdf-hover)!important}
.app-button--agreement{background:var(--az-agreement-bg)!important;border-color:var(--az-agreement-border)!important;color:var(--az-agreement-text)!important}
.app-button--agreement:hover:not(:disabled){background:var(--az-agreement-hover)!important}
.app-button--neutral{background:var(--az-neutral-bg)!important;border-color:var(--az-neutral-border)!important;color:var(--az-neutral-text)!important}
.app-button--neutral:hover:not(:disabled){background:var(--az-neutral-hover)!important}
.app-button--success{background:var(--az-aqua-bg)!important;border-color:var(--az-aqua-border)!important;color:var(--az-aqua-text)!important}
.app-button--success:hover:not(:disabled){background:var(--az-aqua-hover)!important}
.app-button--warning{background:var(--az-warning-bg)!important;border-color:var(--az-warning-border)!important;color:var(--az-warning-text)!important}
.app-button--warning:hover:not(:disabled){background:var(--az-warning-hover)!important}
.app-button--danger{background:var(--az-danger-bg)!important;border-color:var(--az-danger-border)!important;color:var(--az-danger-text)!important}
.app-button--danger:hover:not(:disabled){background:var(--az-danger-hover)!important;border-color:var(--az-danger-hover)!important}
.app-button--danger-soft{background:var(--az-pdf-bg)!important;border-color:var(--az-pdf-border)!important;color:var(--az-pdf-text)!important}
.app-button--danger-soft:hover:not(:disabled){background:var(--az-pdf-hover)!important}
.app-button:active:not(:disabled),.app-action-tab:active:not(:disabled){box-shadow:inset 0 1px 2px rgba(15,23,42,.14);transform:translateY(1px)}
.app-button:focus-visible,.app-action-tab:focus-visible,.icon-btn:focus-visible,.action-menu summary:focus-visible,.ri-actions summary:focus-visible{outline:0;box-shadow:var(--az-focus);position:relative;z-index:1}
.app-button:disabled,.app-button[aria-disabled="true"],.app-action-tab:disabled,.app-action-tab[aria-disabled="true"]{background:var(--az-disabled-bg)!important;border-color:var(--az-disabled-border)!important;color:var(--az-disabled-text)!important;box-shadow:none;cursor:not-allowed;opacity:1;pointer-events:none}
.app-button[aria-busy="true"]{position:relative;cursor:wait}.app-button[aria-busy="true"] .app-action-icon{animation:az-spin .75s linear infinite}
@keyframes az-spin{to{transform:rotate(360deg)}}

.app-action-tab{min-height:38px;height:38px;padding:0 14px;border-color:var(--az-neutral-border);background:var(--az-neutral-bg);color:var(--az-neutral-text);font-size:13px;font-weight:600}
.app-action-tab:hover:not(:disabled):not([aria-disabled="true"]){background:var(--az-neutral-hover);border-color:#94a3b8;color:#1e293b}
.app-action-tab.active,.app-action-tab[aria-selected="true"],.app-action-tab--active,
.tx-tabs .app-action-tab.active,.tx-kind-tabs .app-action-tab.active,.pc-tabs .app-action-tab.active,.financial-tabs .app-action-tab.active,.movement-tabs .app-action-tab.active,.queue-tabs .app-action-tab.active{background:var(--az-tab-active-bg)!important;border-color:var(--az-tab-active-border)!important;color:var(--az-tab-active-text)!important;box-shadow:inset 0 -2px var(--az-action-bg)}
.tx-tabs,.tx-kind-tabs,.pc-tabs,.financial-tabs,.movement-tabs,.queue-tabs,.todo-calendar-modes,[role="tablist"]{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:thin}

.page-head .app-action-toolbar{justify-content:flex-end}.app-action-toolbar{gap:8px}
.search-panel,.filterbar,.pc-filter-panel,.qt-filter,.mk-filter,.checking-filter-panel,
.tx-filter-grid,.tx-register-toolbar,.tx-ledger-toolbar,.tx-report-controls{
  border:1px solid #dbe5eb;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.045);
}
.filter-actions,.pc-filter-buttons,.mk-filter-actions{display:flex;align-items:center;gap:8px}
.filterbar input,.filterbar select,.search-panel input,.search-panel select,.pc-filter-panel input,.pc-filter-panel select,.qt-filter input,.qt-filter select,.mk-filter input,.mk-filter select,.tx-register-toolbar input,.tx-register-toolbar select,.tx-ledger-toolbar input,.tx-ledger-toolbar select{min-height:38px;height:38px;border-radius:8px}
.more-filters>summary,.pc-more-filters>summary{min-height:38px;display:inline-flex;align-items:center;gap:7px;padding:0 13px;border:1px solid var(--az-neutral-border);border-radius:8px;background:var(--az-neutral-bg);color:var(--az-neutral-text);font-size:12px;font-weight:700}

.form-actions{align-items:center;gap:8px}.modal .form-actions{justify-content:flex-end}.modal-close{width:38px;height:38px;border:1px solid var(--az-neutral-border);border-radius:8px;background:var(--az-neutral-bg);color:var(--az-neutral-text)}
.action-menu summary,.ri-actions summary{width:38px!important;height:38px!important;display:grid!important;place-items:center!important;padding:0!important;border:1px solid var(--az-neutral-border)!important;border-radius:8px!important;background:var(--az-neutral-bg)!important;color:var(--az-neutral-text)!important}
.action-menu button,.ri-actions button{min-height:36px;border-radius:7px}.action-menu button:hover,.ri-actions button:hover{background:var(--az-neutral-bg)}.action-menu .danger-text,.ri-actions .danger{color:var(--az-pdf-text)!important}
/* Keep every row action inside its table cell. Some legacy menus use the word
   "Actions" while newer menus use an ellipsis; render both as one compact,
   accessible trigger and reserve a consistent centred cell. */
.action-menu>summary,.ri-actions>summary{white-space:nowrap!important;font-size:0!important;line-height:1!important}
.action-menu>summary::after,.ri-actions>summary::after{content:"•••";display:block;font-size:16px;line-height:1;letter-spacing:2px;transform:translateX(1px)}
td>.action-menu,td>.ri-actions{width:38px;max-width:38px;margin-inline:auto}
td:has(> .action-menu),td:has(> .ri-actions){width:70px!important;min-width:70px!important;max-width:70px!important;padding-inline:15px!important;text-align:center!important;overflow:visible}
th.column-actions,th.column-action,td.column-actions,td.column-action{width:70px!important;min-width:70px!important;max-width:70px!important;padding-inline:15px!important;text-align:center!important}
td.column-actions>.action-menu,td.column-action>.action-menu,td.column-actions>.ri-actions,td.column-action>.ri-actions{margin-inline:auto}
.icon-btn{width:38px;height:38px;border-radius:8px}.icon-btn[title]{position:relative}

/* The fixed desktop navigation reduces the usable canvas by 260px. Wrap the
   eight registration metrics before their intrinsic widths widen the page. */
@media(max-width:1560px) and (min-width:1301px){
  .ri-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .qt-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .qt-filter-grid .qt-search{grid-column:span 2}
}

@media(max-width:850px){
  .app-action-toolbar{align-items:stretch}.page-head .app-action-toolbar{justify-content:flex-start}
  .app-button,.primary,.secondary,.ghost,.danger,.app-action-tab,.icon-btn{min-height:44px!important;height:44px!important}
  .filter-actions,.pc-filter-buttons,.mk-filter-actions{flex-wrap:wrap}
}
@media(max-width:560px){
  .app-action-toolbar{width:100%;gap:8px}.page-head .app-action-toolbar{margin-top:14px}
  .app-action-toolbar>.app-button{flex:1 1 145px;min-width:0}.modal .form-actions{display:grid;grid-template-columns:1fr}.modal .form-actions>*{width:100%}
  .search-panel,.filterbar,.pc-filter-panel,.qt-filter,.mk-filter{max-width:100%}
}
@media(prefers-reduced-motion:reduce){.app-button,.app-action-tab{transition:none}.app-button[aria-busy="true"] .app-action-icon{animation:none}}
