/* Finance-specific composition; canonical Product UI primitives own shared styling. */
html { min-height:100%; }
.tool-finance [hidden] { display:none!important; }
body.tool-finance { margin:0; min-height:100%; background:var(--zg-surface-page); color:var(--zg-text-secondary); font:var(--zg-weight-body) var(--zg-font-body)/var(--zg-line-body) var(--zg-font-family); }
.tool-finance .finance-skip-link { position:fixed; inset-block-start:var(--zg-space-3); inset-inline-start:var(--zg-space-3); z-index:100; transform:translateY(-180%); padding:var(--zg-space-2) var(--zg-space-3); border-radius:var(--zg-radius-md); background:var(--zg-surface-card); color:var(--zg-text-primary); }
.tool-finance .finance-skip-link:focus { transform:none; }
.tool-finance .finance-shell { min-height:100vh; min-height:100dvh; }
.tool-finance .finance-sidebar { position:sticky; inset-block-start:0; display:flex; flex-direction:column; gap:var(--zg-space-6); block-size:100vh; block-size:100dvh; padding-block:var(--zg-space-5); }
.tool-finance .finance-brand { display:flex; align-items:center; gap:var(--zg-space-3); padding-inline:var(--zg-space-4); }
.tool-finance .finance-brand__mark,.tool-finance .finance-avatar { display:grid; place-items:center; flex:none; inline-size:var(--zg-button-height-small); block-size:var(--zg-button-height-small); border-radius:var(--zg-radius-md); background:var(--zg-accent-primary); color:var(--zg-text-on-accent); font-weight:var(--zg-weight-bold); }
.tool-finance .finance-brand__copy,.tool-finance .finance-actor>span:last-child { display:grid; }
.tool-finance .finance-brand__copy small,.tool-finance .finance-actor small { font-size:var(--zg-font-caption); }
.tool-finance .finance-sidebar__foot { margin-block-start:auto; display:flex; align-items:center; gap:var(--zg-space-2); padding-inline:var(--zg-space-4); font-size:var(--zg-font-caption); }
.tool-finance .finance-sidebar__foot>span:first-child { color:var(--zg-accent-primary); }
.tool-finance .finance-main { min-block-size:100vh; }
.tool-finance .finance-state { min-block-size:70vh; display:grid; place-content:center; justify-items:center; gap:var(--zg-space-3); text-align:center; }
.tool-finance .finance-state>* { margin:0; }
.tool-finance .finance-state__icon { display:grid; place-items:center; inline-size:var(--zg-button-height); block-size:var(--zg-button-height); border-radius:var(--zg-radius-full); background:var(--zg-surface-subpanel); font-weight:var(--zg-weight-bold); }
.tool-finance .finance-eyebrow { margin:0 0 var(--zg-space-1); color:var(--zg-accent-primary); font:var(--zg-weight-label) var(--zg-font-label)/var(--zg-line-label) var(--zg-font-family); text-transform:uppercase; }
.tool-finance .finance-actor { display:flex; align-items:center; gap:var(--zg-space-3); margin-inline-start:auto; }
.tool-finance .finance-notice { display:flex; justify-content:space-between; align-items:center; gap:var(--zg-space-4); margin-block-end:var(--zg-space-6); }
.tool-finance .finance-notice :is(h2,p) { margin:0; }
.tool-finance .finance-notice h2 { margin-block-end:var(--zg-space-2); }
.tool-finance .finance-section-heading { display:flex; justify-content:space-between; align-items:end; gap:var(--zg-space-3); margin-block-end:var(--zg-space-3); }
.tool-finance .finance-section-heading :is(h2,p) { margin:0; }
.tool-finance .finance-feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--zg-space-4); }
.tool-finance .finance-feature { display:grid; gap:var(--zg-space-4); }
.tool-finance .finance-feature__header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--zg-space-3); }
.tool-finance .finance-feature__header h3,.tool-finance .finance-feature p { margin:0; }
.tool-finance .finance-feature__meta { display:grid; gap:var(--zg-space-2); margin:0; }
.tool-finance .finance-feature__meta div { display:flex; justify-content:space-between; gap:var(--zg-space-3); }
.tool-finance .finance-feature__meta dt { color:var(--zg-text-muted); }
.tool-finance .finance-feature__meta dd { margin:0; text-align:end; color:var(--zg-text-primary); }
.tool-finance .finance-book-content { padding-block-start:var(--zg-space-4); }
.tool-finance.finance-book-view .finance-main { padding-block-start:0; }
.tool-finance .finance-book-tabs { margin-inline:calc(-1 * var(--zg-page-padding-x)); }
.tool-finance .finance-book-content { padding-block-start:var(--zg-page-padding-y); }
.tool-finance .finance-book-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--zg-space-3); margin-block-end:var(--zg-space-4); }
.tool-finance .finance-book-kpis>div { display:grid; gap:var(--zg-space-1); }
.tool-finance .finance-book-toolbar { justify-content:space-between; margin-block-end:var(--zg-space-3); }
.tool-finance .finance-book-toolbar>div,.tool-finance .finance-book-columns,.tool-finance .finance-book-bulk { display:flex; flex-wrap:wrap; gap:var(--zg-space-2); }
.tool-finance .finance-book-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:var(--zg-space-3); }
.tool-finance :is(.finance-book-filters,.finance-book-columns,.finance-book-bulk) { margin-block-end:var(--zg-space-3); }
.tool-finance .finance-book-table { min-inline-size:1000px; }
.tool-finance .finance-book-table tbody tr[data-entry] { cursor:pointer; }
.tool-finance .finance-book-table td { max-inline-size:320px; overflow-wrap:anywhere; }
.tool-finance .finance-book-table th .zg-btn { color:inherit; font:inherit; padding-inline:0; background:transparent; border:0; }
.tool-finance .finance-book-table th { white-space:nowrap; }
.tool-finance .finance-book-table .zg-table__number { font-variant-numeric:tabular-nums; white-space:nowrap; }
.tool-finance .finance-book-table td[data-book-col="date"],.tool-finance .finance-book-table td[data-book-col="status"],.tool-finance .finance-book-table td[data-book-col="isControlled"] { white-space:nowrap; }
.tool-finance .finance-book-table td[data-book-col="description"] { min-inline-size:240px; }
.tool-finance .finance-book-table td[data-book-col="konto"] { min-inline-size:180px; }
.tool-finance .finance-book-toolbar { padding-inline:0; border:0; background:transparent; }
.tool-finance .finance-invoice-row { background:var(--zg-surface-subpanel); cursor:pointer; }
.tool-finance .finance-book-table .finance-invoice-row[aria-expanded="true"],
.tool-finance .finance-book-table .finance-invoice-child { background:var(--zg-accent-secondary); }
.tool-finance .finance-invoice-row[aria-expanded="true"] td:first-child,
.tool-finance .finance-invoice-child td:first-child { box-shadow:inset var(--zg-table-selected-marker-width) 0 var(--zg-accent-primary); }
.tool-finance .finance-invoice-row[aria-expanded="true"] td[data-book-col="description"] { font-weight:var(--zg-weight-bold); }
.tool-finance .finance-book-table .finance-invoice-child--last td { border-block-end:1px solid var(--zg-accent-primary); }
.tool-finance .finance-invoice-branch { display:block; text-align:center; color:var(--zg-accent-primary); }
.tool-finance .finance-invoice-child td[data-book-col="description"] { padding-inline-start:var(--zg-space-6); }
.tool-finance .finance-accounts-table { min-inline-size:760px; table-layout:fixed; }
.tool-finance .finance-accounts-table td { overflow-wrap:anywhere; }
.tool-finance .finance-accounts-name { inline-size:27%; }
.tool-finance .finance-accounts-category { inline-size:24%; }
.tool-finance .finance-accounts-vat { inline-size:9%; }
.tool-finance col.finance-accounts-actions { inline-size:240px; }
.tool-finance .finance-accounts-identity { display:flex; align-items:center; }
.tool-finance .finance-accounts-identity .finance-account-color { flex-shrink:0; }
.tool-finance .finance-accounts-detail { display:block; }
.tool-finance .finance-accounts-tag-summary { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.tool-finance .finance-accounts-table :is(th,td).finance-accounts-actions { position:sticky; inset-inline-end:0; z-index:1; }
.tool-finance .finance-accounts-table td.finance-accounts-actions { background:var(--zg-surface-card); }
.tool-finance .finance-accounts-table tr:hover td.finance-accounts-actions { background:var(--zg-surface-hover); }
.tool-finance .finance-accounts-action-buttons { display:flex; justify-content:flex-end; gap:var(--zg-space-2); }
.tool-finance .finance-accounts-action-buttons .zg-btn { flex-shrink:0; white-space:nowrap; }
.tool-finance .finance-payment-action-cell { inline-size:240px; }
.tool-finance .finance-payment-actions { display:flex; justify-content:flex-end; gap:var(--zg-space-2); }
.tool-finance .finance-payment-actions .zg-btn { flex-shrink:0; white-space:nowrap; }
.tool-finance .finance-accounts-table [data-account-id] { cursor:pointer; }
.tool-finance .finance-account-color { display:inline-block; inline-size:var(--zg-space-4); block-size:var(--zg-space-4); margin-inline-end:var(--zg-space-2); background:var(--account-color); }
.finance-account-color-editor { display:flex; gap:var(--zg-space-2); }
.finance-account-color-editor input[type="color"] { flex:none; inline-size:var(--zg-touch-target-min); }
.finance-book-dialog { inline-size:min(800px,calc(100vw - var(--zg-space-8))); max-block-size:85vh; overflow:auto; }
.finance-book-dialog>form { padding:var(--zg-space-5); }
.finance-account-editor__form { display:flex; flex-direction:column; min-block-size:0; }
.finance-account-editor__tabs { flex-shrink:0; }
.finance-account-fields { align-items:start; }
.finance-account-tax-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:var(--zg-space-4); max-inline-size:720px; }
.finance-account-tax-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); align-items:start; gap:var(--zg-space-3); }
@media (max-width:640px) {
 .finance-account-tax-fields { grid-template-columns:minmax(0,1fr); }
}
.finance-account-editor .zg-modal__body { min-block-size:0; grid-auto-rows:max-content; }
.finance-account-editor .zg-modal__body p { margin:0; }
.finance-account-editor .zg-modal__footer [data-error] { margin:0; flex-basis:100%; }
.finance-account-editor .zg-modal__footer [data-error]:empty { display:none; }
.finance-booking-editor { block-size:calc(100dvh - 2 * var(--zg-page-padding-y)); }
.finance-booking-editor__form { display:flex; flex-direction:column; min-block-size:0; flex:1; }
.finance-template-actions { display:flex; flex-wrap:wrap; gap:var(--zg-space-2); }
.finance-booking-template-editor .finance-booking-workspace { grid-template-columns:minmax(0,1fr); }
.finance-booking-template-editor :is(.finance-receipt-viewer,[data-booking-tab="review"],[data-booking-panel="review"]) { display:none; }
.finance-booking-editor .zg-modal__header p { margin-block-end:0; }
.finance-booking-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-block-size:0; flex:1; }
.finance-booking-fields { display:flex; flex-direction:column; min-inline-size:0; min-block-size:0; }
.finance-booking-fields>.zg-tabs { flex-shrink:0; }
.finance-booking-fields>.zg-modal__body { min-block-size:0; }
.finance-booking-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--zg-space-3); }
.finance-tax-choices { display:flex; flex-wrap:wrap; gap:var(--zg-space-2); }
.finance-booking-tax-block { gap:var(--zg-space-2); }
.finance-booking-editor [data-booking-panel="amounts"] p { margin:0; }
.finance-booking-fields>.zg-tabs { overflow-x:auto; }
.finance-booking-fields>.zg-tabs .zg-tab { flex-shrink:0; }
.finance-contact-results { display:grid; gap:var(--zg-space-2); max-block-size:220px; overflow:auto; }
.finance-contact-result.zg-btn { display:flex; flex-direction:column; align-items:flex-start; text-align:start; white-space:normal; block-size:auto; }
.finance-contact-result span { margin:0; }
.finance-contact-card dl { display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--zg-space-2) var(--zg-space-3); }
.finance-contact-card dd { margin:0; overflow-wrap:anywhere; }
.finance-contact-card p { margin-block:var(--zg-space-3); }
.finance-booking-editor [data-contact-loading]:empty { display:none; }
.finance-booking-editor .zg-modal__footer [data-error] { flex-basis:100%; margin:0; }
.finance-booking-editor .zg-modal__footer [data-error]:empty { display:none; }
.finance-receipt-viewer { display:flex; flex-direction:column; min-inline-size:0; min-block-size:0; padding:var(--zg-card-padding); border-inline-start:1px solid var(--zg-border-soft); background:var(--zg-surface-subpanel); }
.finance-receipt-viewer p { margin:0; }
.finance-receipt-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--zg-space-2); }
.finance-receipt-preview { flex:1; overflow:auto; min-block-size:0; background:var(--zg-surface-card); border:1px solid var(--zg-border-soft); border-radius:var(--zg-radius-md); }
.finance-receipt-viewer [data-file-name] { overflow-wrap:anywhere; flex:1; min-inline-size:0; }
.finance-receipt-preview img { display:block; width:100%; max-width:none; height:auto; margin-inline:auto; }
.finance-receipt-preview iframe { display:block; inline-size:100%; block-size:100%; border:0; }
.finance-receipt-empty { display:grid; align-content:center; justify-items:center; min-block-size:100%; gap:var(--zg-space-3); padding:var(--zg-card-padding); box-sizing:border-box; text-align:center; }
@media (max-width:800px) {
 .finance-booking-workspace { display:block; overflow:auto; }
 .finance-booking-fields { display:block; min-block-size:0; }
 .finance-booking-fields>.zg-modal__body { overflow:visible; }
 .finance-receipt-viewer { min-block-size:520px; block-size:70vh; border-inline-start:0; border-block-start:1px solid var(--zg-border-soft); }
}
.finance-account-import fieldset { min-inline-size:0; margin:0; padding:0; border:0; }
.finance-account-import .zg-modal__body { grid-auto-rows:max-content; align-content:start; }
.finance-account-import .zg-modal__body :is(p,h3) { margin:0; }
.finance-account-import .zg-modal__body>* { min-inline-size:0; }
.finance-account-import .finance-import-table { max-block-size:40vh; margin-block-start:var(--zg-space-3); }
.finance-account-import .finance-import-table table { min-inline-size:720px; }
.finance-account-import .finance-import-table td { white-space:normal; overflow-wrap:anywhere; }
.finance-account-import [data-selection-count] { margin-inline-end:auto; }
.tool-finance .finance-brand .zg-sidebar-toggle { flex:none; }
.tool-finance.sidebar-collapsed .finance-shell { grid-template-columns:var(--zg-sidebar-collapsed-width) minmax(0,1fr); }
.tool-finance.sidebar-collapsed .finance-sidebar { inline-size:var(--zg-sidebar-collapsed-width); }
.tool-finance.sidebar-collapsed :is(.finance-brand__copy,.zg-nav-item__copy,.finance-sidebar__foot) { display:none; }
.tool-finance.sidebar-collapsed :is(.finance-brand,.zg-nav-item) { justify-content:center; padding-inline:0; }
@media (max-width:640px) {
  .tool-finance .finance-shell { grid-template-columns:minmax(0,1fr); }
  .tool-finance .finance-sidebar { display:none; }
  .tool-finance .finance-feature-grid { grid-template-columns:minmax(0,1fr); }
  .tool-finance .finance-book-kpis { grid-template-columns:minmax(0,1fr); }
  .tool-finance .finance-notice { align-items:flex-start; flex-direction:column; }
  .tool-finance .finance-actor { margin-inline-start:0; }
}
