/* Fairlead expenses. Built on the Fairlead design system target layer (public/assets/ds/target,
   copied from @fairleadhq/design-system): tokens, the system theme, base, and components. */

/* ---------- frame ---------- */
*,::before,::after{box-sizing:border-box}
html,body{block-size:100%}
body{font-size:var(--fl-font-size-md)}
[hidden]{display:none!important}
:where(button){appearance:none;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
:where(input,select,textarea){font:inherit;color:inherit}
svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fl-shell{--rail-w:14rem}
.fl-shell[data-rail="collapsed"]{--rail-w:3.5rem}
.fl-shell__main{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-block-size:0}
.fl-shell a:not(.fl-button){text-decoration:none}
.fl-shell a:not(.fl-button):hover{text-decoration:underline}
.app-main{display:flex;flex-direction:column;block-size:100%;min-block-size:0;min-inline-size:0}
.app-view,.app-section{display:flex;flex:1;flex-direction:column;min-block-size:0;min-inline-size:0}
.fl-topbar{flex:none}
.mono{font-family:var(--fl-font-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--fl-text-muted)}
.sub{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
svg.i{inline-size:1rem;block-size:1rem;flex:none}
svg.i.xs{inline-size:.75rem;block-size:.75rem}
svg.i.dim{color:var(--fl-text-muted)}
svg.i.accent{color:var(--fl-accent)}
.vh{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{position:fixed;z-index:var(--fl-layer-toast);inset-block-start:var(--fl-space-2);inset-inline-start:var(--fl-space-2);padding:var(--fl-space-2) var(--fl-space-3);border-radius:var(--fl-radius-md);background:var(--fl-surface-raised);color:var(--fl-text-strong);transform:translateY(-200%)}
.skip-link:focus{transform:none}
.scrim{position:fixed;inset:0;z-index:var(--fl-layer-sticky)}
.busy{opacity:.6;pointer-events:none}
input[type="checkbox"]{inline-size:1rem;block-size:1rem;margin:0;cursor:pointer}
input[type="checkbox"]:disabled{cursor:not-allowed}
.cb{display:block}
.overdue{color:var(--fl-status-danger-fg)}
.fl-input[data-mono]::placeholder{font-family:var(--fl-font-sans)}
.fl-button[data-tone="danger"]{--_fg:var(--fl-status-danger-fg)}
.fl-button[data-tone="danger"]:not([data-variant]){--_bd:var(--fl-status-danger-border)}
.fl-button[data-variant="ghost"][data-tone="danger"]{--_bg-hover:var(--fl-status-danger-bg);--_bg-active:var(--fl-status-danger-bg)}
.fl-button:disabled{pointer-events:auto;cursor:not-allowed}

/* ---------- rail furniture ---------- */
.fl-rail{z-index:var(--fl-layer-sticky)}
.fl-rail__brand{gap:var(--fl-space-2);padding-inline:var(--fl-space-3)}
.rail-mark{display:inline-flex;flex:none}
.rail-mark img{inline-size:2rem;block-size:auto}
.mark-on-dark{display:none}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .mark-on-light{display:none}:root:not([data-mode="light"]) .mark-on-dark{display:block}}
:root[data-mode="dark"] .mark-on-light{display:none}
:root[data-mode="dark"] .mark-on-dark{display:block}
.rail-product{color:var(--fl-text-strong);font-size:var(--fl-font-size-lg)}
.fl-shell[data-rail="collapsed"] .fl-rail__brand{justify-content:center;padding-inline:0}
.fl-rail__item{position:relative}
.rail-count{display:inline-flex;align-items:center;gap:var(--fl-space-2);min-block-size:1.5rem;margin-inline-start:auto;padding:0 var(--fl-space-2);border:var(--fl-border-width) solid var(--fl-border-default);border-radius:var(--fl-radius-full);background:var(--fl-surface-card);color:var(--fl-text-strong);font-family:var(--fl-font-mono);font-size:var(--fl-font-size-xs);font-variant-numeric:tabular-nums}
.rail-count .queue-item{display:inline-flex;align-items:center;gap:var(--fl-space-1)}
.rail-count svg.i{color:var(--fl-text-muted)}
.rail-dot{position:absolute;inset-block-start:var(--fl-space-1);inset-inline-start:calc(50% + var(--fl-space-1));display:none;inline-size:.5rem;block-size:.5rem;border-radius:var(--fl-radius-full);background:var(--fl-accent)}
.fl-shell[data-rail="collapsed"] .fl-rail__item>.rail-dot:not([hidden]){display:block}
.rail-action{appearance:none;inline-size:100%;border:0;background:none;font:inherit;font-weight:var(--fl-font-weight-medium);text-align:start;cursor:pointer}
.fl-rail__item.fl-mode-toggle::before{inline-size:1.125rem;block-size:1.125rem;background:var(--fl-text-muted)}
.fl-rail__item.fl-mode-toggle:hover::before{background:var(--fl-text-strong)}
.rail-identity{display:flex;align-items:center;gap:var(--fl-space-2);min-inline-size:0;padding:var(--fl-space-2) var(--fl-space-3)}
.rail-avatar{display:grid;place-items:center;flex:none;inline-size:1.75rem;block-size:1.75rem;border-radius:var(--fl-radius-full);background:var(--fl-surface-selected);color:var(--fl-accent);font-size:var(--fl-font-size-2xs);font-weight:var(--fl-font-weight-semibold);text-transform:uppercase}
.rail-who{display:grid;flex:1;min-inline-size:0}
.rail-who strong,.rail-who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-who strong{color:var(--fl-text-strong);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium)}
.rail-who small{color:var(--fl-text-muted);font-size:var(--fl-font-size-xs)}
.rail-signout{flex:none;--_fg:var(--fl-text-muted)}
.rail-signout:hover{--_fg:var(--fl-text-strong);--_bg-hover:var(--fl-surface-hover)}
.fl-shell[data-rail="collapsed"] .rail-identity{flex-direction:column;padding-inline:0}
.fl-shell[data-rail="collapsed"] .rail-who{display:none}

/* ---------- top bar ---------- */
.fl-topbar__actions>.fl-badge{min-block-size:2.25rem;padding-inline:var(--fl-space-3) var(--fl-space-4)}
.fl-topbar .fl-tabs{min-inline-size:0}

/* ---------- toolbar controls ---------- */
.fl-toolbar .fl-segmented>button{min-block-size:2rem}
.fl-toolbar__end{position:relative}
.fl-toolbar__count{display:inline-flex;align-items:center;gap:var(--fl-space-1);white-space:nowrap}
.fl-toolbar__count>.fl-button{margin-inline-end:var(--fl-space-2)}
.search-field{position:relative;display:flex;align-items:center;flex:1 1 16rem;min-inline-size:12rem;max-inline-size:30rem}
.search-field>svg{position:absolute;inset-inline-start:var(--fl-space-3);inline-size:1rem;block-size:1rem;color:var(--fl-text-muted);pointer-events:none}
.search-field>.fl-input{padding-inline-start:var(--fl-space-8)}
.period{position:relative;flex:none}
.period-trigger{display:inline-flex;min-block-size:2.25rem;border:var(--fl-border-width) solid var(--fl-border-control);border-radius:var(--fl-radius-md);background:var(--fl-surface-card);overflow:hidden}
.period-trigger>button{appearance:none;display:inline-flex;align-items:center;gap:var(--fl-space-2);padding:0 var(--fl-space-3);border:0;border-inline-end:var(--fl-border-width) solid var(--fl-border-subtle);background:none;color:var(--fl-text-strong);font:inherit;font-size:var(--fl-font-size-md);font-weight:var(--fl-font-weight-medium);cursor:pointer}
.period-trigger>button:last-child{border-inline-end:0}
.period-trigger>button:hover{background:var(--fl-surface-hover)}
.period-trigger>button:focus-visible{outline-offset:calc(var(--fl-focus-ring-width) * -1)}
.period-trigger svg{inline-size:1rem;block-size:1rem;color:var(--fl-text-muted)}
.period-trigger>.period-step{justify-content:center;inline-size:2.25rem;padding:0}
.period-label{white-space:nowrap}

/* ---------- popovers ---------- */
.popover{position:absolute;z-index:var(--fl-layer-dropdown);box-sizing:border-box;padding:var(--fl-space-4);border:var(--fl-border-width) solid var(--fl-border-default);border-radius:var(--fl-radius-lg);background:var(--fl-surface-raised);color:var(--fl-text-body);box-shadow:var(--fl-shadow-popover);font-size:var(--fl-font-size-sm)}
.popover h2{margin:0 0 var(--fl-space-2);color:var(--fl-text-strong);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-semibold)}
.popover-group{padding-block-end:var(--fl-space-3);margin-block-end:var(--fl-space-3);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.popover-group:last-child{padding-block-end:0;margin-block-end:0;border-block-end:0}
.popover-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--fl-space-3)}
.popover-title span,.popover-foot>span,.auto-refresh>span{color:var(--fl-text-muted);font-size:var(--fl-font-size-xs)}
.period-popover{inset-block-start:calc(100% + var(--fl-space-2));inset-inline-start:0;inline-size:24rem;max-inline-size:calc(100vw - var(--rail-w) - 2 * var(--fl-space-4))}
.quick-range{display:grid;grid-template-columns:5.5rem 4rem minmax(0,1fr) auto;gap:var(--fl-space-2);align-items:center}
.quick-range .fl-input{text-align:center}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:2px var(--fl-space-4)}
.presets button{appearance:none;padding:var(--fl-space-1) var(--fl-space-2);border:0;border-radius:var(--fl-radius-sm);background:none;color:var(--fl-text-strong);font:inherit;text-align:start;cursor:pointer}
.presets button:hover{background:var(--fl-surface-hover)}
.presets button.on{background:var(--fl-surface-selected);color:var(--fl-accent);font-weight:var(--fl-font-weight-medium)}
.dates{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--fl-space-2) var(--fl-space-3);align-items:center}
.dates label{color:var(--fl-text-muted)}
.popover-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--fl-space-2);margin-block-start:var(--fl-space-3)}
.auto-refresh{display:flex;align-items:center;gap:var(--fl-space-2)}
.auto-refresh .fl-checkbox{font-size:var(--fl-font-size-sm)}
.auto-refresh .fl-input{inline-size:4.5rem;text-align:center}
.columns-popover{inset-block-start:calc(100% + var(--fl-space-2));inset-inline-end:0;inline-size:16rem}
.columns-popover .head{display:flex;align-items:center;justify-content:space-between;margin-block-end:var(--fl-space-2)}
.columns-popover .head h2{margin:0}
.columns-popover .row{display:flex;align-items:center;justify-content:space-between;min-block-size:2rem;padding-inline:var(--fl-space-1);border-radius:var(--fl-radius-sm)}
.columns-popover .row:hover{background:var(--fl-surface-hover)}
.columns-popover label{display:flex;align-items:center;gap:var(--fl-space-2);color:var(--fl-text-strong);cursor:pointer}
.columns-popover .mv{display:flex;gap:2px}
.filter-popover{position:fixed;inline-size:15rem;font-weight:var(--fl-font-weight-regular);text-align:start;white-space:normal}
.standard-filter-popover{z-index:40}
.standard-filter-popover[data-filter-kind="datetime"]{inline-size:min(24rem,calc(100vw - var(--fl-space-4)))}
.date-time-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--fl-space-2)}
.date-time-filter label{display:flex;min-inline-size:0;flex-direction:column;gap:var(--fl-space-1);color:var(--fl-text-muted);font-size:var(--fl-font-size-xs)}
.date-time-filter .fl-input{box-sizing:border-box;inline-size:100%}
.filter-popover .two{display:flex;gap:var(--fl-space-2)}
.filter-popover .act{display:flex;justify-content:flex-end;gap:var(--fl-space-2);margin-block-start:var(--fl-space-3)}

/* ---------- ledger ---------- */
#ledgerView>.fl-topbar{border-block-end:0}
.ledger-page{display:flex;flex:1;flex-direction:column;min-block-size:0;padding:0 var(--fl-space-6) var(--fl-space-6)}
.status-tabs{flex:none;margin-block-end:var(--fl-space-4)}
.ledger-toolbar{flex:none}
.ledger-kind-filter{flex:none;inline-size:10rem}
.work{display:flex;flex:1;min-block-size:0;border:var(--fl-border-width) solid var(--fl-border-subtle);border-radius:var(--fl-radius-lg);background:var(--fl-surface-card);overflow:clip}
.list{flex:1;min-inline-size:0;overflow:auto}
.ledger-table{min-inline-size:60rem}
.ledger-table thead th{block-size:2.5rem;background:var(--fl-surface-inset)}
.ledger-table thead th[data-filter-open]{z-index:var(--fl-layer-dropdown)}
.ledger-table td{block-size:3rem}
.ledger-table tbody tr{cursor:pointer}
.fl-table :is(th,td).sel-col{box-sizing:border-box;inline-size:3rem;min-inline-size:3rem;max-inline-size:3rem;padding-inline:var(--fl-space-4) var(--fl-space-2)}
.ledger-table [data-pinned="last"]{--fl-pin-offset:3rem}
.ledger-table thead th[data-pinned]{background:var(--fl-surface-inset)}
.column-head{display:flex;align-items:center;gap:var(--fl-space-1)}
th[data-numeric] .column-head{justify-content:flex-end}
.column-filter{appearance:none;display:inline-grid;place-items:center;inline-size:1.5rem;block-size:1.5rem;padding:0;border:0;border-radius:var(--fl-radius-sm);background:none;color:var(--fl-text-muted);opacity:0;cursor:pointer}
.column-filter svg{inline-size:.875rem;block-size:.875rem}
th:hover .column-filter,.column-filter:focus-visible,.column-filter[data-active]{opacity:1}
.column-filter[data-active]{color:var(--fl-accent)}
.column-filter:hover{background:var(--fl-surface-hover);color:var(--fl-text-strong)}
@media (hover:none){.column-filter{opacity:1}}
.id-name{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.id-meta{color:var(--fl-text-muted);font-size:var(--fl-font-size-xs)}
td.id-cell .id-name,td.id-cell .id-meta,td.person-cell span{display:block;max-inline-size:15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td.person-cell span{max-inline-size:10rem}
.ledger-summary{border:0;border-radius:0}
/* The identity is a button, which centres its text by default; a row summary reads from the start edge. */
.ledger-summary .fl-summary__link{justify-self:stretch;text-align:start}

/* ---------- selection bar ---------- */
.batch{position:fixed;inset-inline:var(--rail-w) 0;inset-block-end:var(--fl-space-5);z-index:var(--fl-layer-overlay);display:flex;align-items:center;gap:var(--fl-space-3);inline-size:max-content;max-inline-size:calc(100% - var(--rail-w) - 2 * var(--fl-space-4));margin-inline:auto;padding:var(--fl-space-2) var(--fl-space-2) var(--fl-space-2) var(--fl-space-4);border:var(--fl-border-width) solid var(--fl-border-default);border-radius:var(--fl-radius-lg);background:var(--fl-surface-raised);box-shadow:var(--fl-shadow-popover);font-size:var(--fl-font-size-sm);opacity:0;transform:translateY(calc(100% + var(--fl-space-5)));transition:transform var(--fl-duration-base) var(--fl-ease-out),opacity var(--fl-duration-base) var(--fl-ease-out);pointer-events:none}
.batch.show{opacity:1;transform:none;pointer-events:auto}
.batch-count{display:flex;flex-direction:column;padding-inline-end:var(--fl-space-3);border-inline-end:var(--fl-border-width) solid var(--fl-border-subtle);line-height:var(--fl-line-height-snug)}
.batch-count strong{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-semibold)}
.batch-count [data-numeric]{color:var(--fl-text-muted)}
.batch-actions{display:flex;align-items:center;gap:var(--fl-space-2);color:var(--fl-text-muted)}

/* ---------- sign-in ---------- */
.auth{display:grid;flex:1;place-items:center;min-block-size:0;padding:var(--fl-space-6);overflow:auto}
.auth-card{display:grid;gap:var(--fl-space-5);inline-size:min(26rem,100%);padding:var(--fl-space-8)}
.auth-copy{display:grid;gap:var(--fl-space-2)}
.auth-copy h1{margin:0;font-size:var(--fl-font-size-xl)}
.auth-copy p{margin:0}
.auth-actions{display:flex;flex-wrap:wrap;gap:var(--fl-space-2)}
.auth-legal{margin:0;padding-block-start:var(--fl-space-4);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.auth-legal a{color:var(--fl-text-link)}

@media (max-width:60rem){
  .fl-shell,.fl-shell[data-rail]{--rail-w:0rem}
  .fl-shell{grid-template-rows:auto minmax(0,1fr)}
  .fl-rail__end{display:flex;align-items:center;gap:var(--fl-space-1);margin-inline-start:auto;padding-block-start:0;padding-inline-start:var(--fl-space-2);border-block-start:0;border-inline-start:var(--fl-border-width) solid var(--fl-border-subtle)}
  .fl-rail{align-items:center}
  .fl-rail__item{min-inline-size:2.25rem}
  .fl-shell[data-rail="collapsed"] .rail-identity,.rail-identity{padding-block:0}
  #railToggle,.rail-who,[data-mode-label]{display:none}
  .fl-rail__item.fl-mode-toggle{justify-content:center;inline-size:2.25rem;padding-inline:0}
  .fl-shell[data-rail="collapsed"] .rail-identity,.rail-identity{flex-direction:row;padding-inline:var(--fl-space-1)}
  .ledger-page{padding-inline:var(--fl-space-4)}
  .batch{inset-inline:var(--fl-space-3);inline-size:auto;max-inline-size:none;margin:0;flex-wrap:wrap}
}
@media (max-width:40rem){
  /* Compact: the strip keeps destinations as icons, so none scrolls out of reach. Labels stay in the
     accessible name, and the attention dot stands in for the count. */
  .fl-rail>.fl-rail__item{justify-content:center;min-inline-size:2.25rem;padding-inline:var(--fl-space-2)}
  .fl-rail>.fl-rail__item>span:not(.rail-dot){position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .fl-rail>.fl-rail__item>.rail-dot:not([hidden]){display:block}
  .fl-topbar__actions>.fl-badge{display:none}
  .ledger-toolbar .period{flex:1 1 100%}
  .ledger-toolbar .period-trigger{display:flex}
  .ledger-toolbar .period-trigger>button:first-child{flex:1;min-inline-size:0}
  .ledger-toolbar .search-field{flex-basis:100%;max-inline-size:none}
  .ledger-toolbar .fl-toolbar__end{margin-inline-start:0;flex:1 1 100%;justify-content:space-between}
}

/* ---------- document page ----------
   An open document takes the whole Ledger page: the list, its tabs and toolbar step aside, the
   document header becomes the page's top bar, and the body splits into details and lines. */
#ledgerView.doc-open>.fl-topbar,#ledgerView.doc-open .status-tabs,#ledgerView.doc-open .ledger-toolbar,#ledgerView.doc-open .list{display:none}
#ledgerView.doc-open .ledger-page{padding:0}
#ledgerView.doc-open .work{border:0;border-radius:0;background:var(--fl-surface-page)}
.pane{display:none;flex:1;flex-direction:column;min-inline-size:0;background:var(--fl-surface-page)}
.pane.open,.pane.edit{display:flex}
.pane-h{display:flex;flex:none;align-items:center;gap:var(--fl-space-3);min-block-size:3.5rem;padding:var(--fl-space-2) var(--fl-space-6);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.doc-back{flex:none;margin-inline-start:calc(var(--fl-space-2) * -1)}
.doc-title{display:flex;flex:1;flex-direction:column;gap:2px;min-inline-size:0}
.pane-h .t{overflow:hidden;color:var(--fl-text-strong);font-size:var(--fl-font-size-lg);font-weight:var(--fl-font-weight-semibold);line-height:var(--fl-line-height-snug);letter-spacing:var(--fl-tracking-snug);text-overflow:ellipsis;white-space:nowrap}
.pane-h .meta{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.pane-h>.fl-badge{flex:none}
.pane-h .nav{display:flex;flex:none;gap:2px}
.pane-b{display:grid;flex:1;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--fl-space-4);overflow:auto;padding:var(--fl-space-6)}
/* The editor keeps the form's order: its fields, then its lines. The two sit side by side while both fit
   and stack by their own width, never by a window query that could fall out of step with the rail. */
.doc-edit{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--fl-space-6)}
.doc-edit>.doc-info{flex:2 1 20rem}
.doc-edit>.doc-lines{flex:3 1 34rem;min-inline-size:min(100%,34rem)}
.doc-head-total{flex:none;color:var(--fl-text-strong);font-family:var(--fl-font-mono);font-size:var(--fl-font-size-lg);font-variant-numeric:tabular-nums;font-weight:var(--fl-font-weight-medium);white-space:nowrap}
.doc-info{display:flex;flex-direction:column;gap:var(--fl-space-5);min-inline-size:0}
.fl-detail .fl-card{min-inline-size:0}
.fl-card[data-layout="section"] .att:last-child{border-block-end:0;padding-block-end:0}
.doc-line{display:grid;grid-template-columns:minmax(0,1fr) 12rem 8rem;align-items:center;gap:var(--fl-space-3);min-block-size:2.75rem;padding:var(--fl-space-2) 0;border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.doc-line .num{text-align:end;white-space:nowrap}
.doc-line-head{min-block-size:0;padding-block:0 var(--fl-space-2);border-block-end-color:var(--fl-border-default);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium)}
.doc-line-total{border-block-end:0;color:var(--fl-text-strong);font-weight:var(--fl-font-weight-semibold)}
.doc-line-total .num{font-size:var(--fl-font-size-lg);font-weight:var(--fl-font-weight-medium)}
.line-desc{color:var(--fl-text-strong);overflow-wrap:anywhere}
.line-account{min-inline-size:0}
.line-account-ref{display:inline-flex;max-inline-size:100%;align-items:baseline;gap:var(--fl-space-2);white-space:nowrap}
.line-account .mono{color:var(--fl-text-strong)}
.line-account-short{overflow:hidden;color:var(--fl-text-body);text-overflow:ellipsis}
.line-account-name{display:block;overflow:hidden;color:var(--fl-text-body);text-overflow:ellipsis;white-space:nowrap}
.line-account-empty{color:var(--fl-text-muted)}
.doc-lines-empty{margin:0;padding:var(--fl-space-4) 0;color:var(--fl-text-muted)}
.pane-f{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:var(--fl-space-2);min-block-size:calc(2.25rem + 2 * var(--fl-space-3) + var(--fl-border-width));padding:var(--fl-space-3) var(--fl-space-6);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle);background:var(--fl-surface-card)}
.pane-f .sp{flex:1}
.sec h4{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--fl-space-1) var(--fl-space-3);margin:0 0 var(--fl-space-2);color:var(--fl-text-strong);font-size:var(--fl-font-size-md);font-weight:var(--fl-font-weight-semibold)}
.sec h4 .sub{font-weight:var(--fl-font-weight-regular)}
.att{display:flex;align-items:center;gap:var(--fl-space-3);padding:var(--fl-space-2) 0;border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.att .nm{flex:1;min-inline-size:0;overflow:hidden;color:var(--fl-text-strong);text-overflow:ellipsis;white-space:nowrap}
.preview{display:flex;align-items:center;justify-content:center;gap:var(--fl-space-2);min-block-size:7.5rem;max-block-size:16rem;margin-block-end:var(--fl-space-2);overflow:hidden;border:var(--fl-border-width) solid var(--fl-border-subtle);border-radius:var(--fl-radius-lg);background:var(--fl-surface-inset);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.preview img{display:block;max-inline-size:100%;max-block-size:16rem}
.hist{display:flex;flex-direction:column;gap:var(--fl-space-2);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.hist div{display:flex;align-items:baseline;gap:var(--fl-space-3)}
.hist .mono{flex:none}
.hist span:last-child{color:var(--fl-text-body)}
.vendor-resolution-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--fl-space-2);align-items:center}
.fl-banner>.vendor-resolution-actions{margin-block-start:var(--fl-space-3)}
.vendor-resolution-actions .vendor-create{grid-column:1/-1;justify-self:start}
.pane-confirm{display:flex;flex-direction:column;gap:var(--fl-space-3);inline-size:100%}
.pane-confirm p{margin:0;color:var(--fl-text-strong)}
.pane-confirm .fl-textarea{min-block-size:4.5rem}
.pane-confirm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fl-space-2)}

/* ---------- document editor ---------- */
.kind{display:flex;flex-direction:column;gap:var(--fl-space-2)}
.kind-switch{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(max-content,1fr)}
.kind-switch>button{min-block-size:2rem}
.kind .desc{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));align-items:start;gap:var(--fl-space-4) var(--fl-space-3)}
.g2 .full{grid-column:1/-1}
.form-fact{display:grid;gap:var(--fl-space-1);min-inline-size:0}
.form-fact__value{min-inline-size:0;color:var(--fl-text-strong);overflow-wrap:anywhere}
.req{margin-inline-start:var(--fl-space-1);color:var(--fl-status-danger-fg)}
.eline,.eline-head{display:grid;grid-template-columns:minmax(0,1fr) 12rem 8rem 2.25rem;gap:var(--fl-space-2);align-items:center}
.eline{margin-block-end:var(--fl-space-2)}
.eline-head{margin-block-end:var(--fl-space-2);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium)}
.eline-head .num{text-align:end}
.eline .amt{text-align:end}
.tot{display:flex;align-items:center;justify-content:space-between;gap:var(--fl-space-3)}
.tot{padding-block-start:var(--fl-space-2);border-block-start:var(--fl-border-width) solid var(--fl-border-default)}
.doc-total{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-semibold)}
.tot b{margin-inline-start:var(--fl-space-3);font-size:var(--fl-font-size-lg);font-weight:var(--fl-font-weight-medium)}
.drop{margin-block-start:var(--fl-space-2);padding:var(--fl-space-4);border:var(--fl-border-width) dashed var(--fl-border-control);border-radius:var(--fl-radius-lg);background:var(--fl-surface-inset);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);text-align:center;cursor:pointer}
.drop:hover,.drop.over{border-color:var(--fl-accent);background:var(--fl-accent-wash);color:var(--fl-text-strong)}
.entity-picker{position:relative;min-inline-size:0}
.entity-picker>.search-field{max-inline-size:none}
.entity-picker.is-invalid .entity-control,.entity-picker.is-invalid .search-field>.fl-input{border-color:var(--fl-status-danger-fg)}
.entity-control{display:flex;align-items:center;gap:var(--fl-space-1);inline-size:100%;min-block-size:2.25rem;padding:0 var(--fl-space-1);border:var(--fl-border-width) solid var(--fl-border-control);border-radius:var(--fl-radius-md);background:var(--fl-surface-raised)}
.entity-control:hover{border-color:var(--fl-text-muted)}
.entity-control:focus-within{border-color:var(--fl-focus-ring);outline:var(--fl-focus-ring-width) solid var(--fl-focus-ring);outline-offset:0}
.entity-search{flex:1;min-inline-size:0;block-size:1.75rem;padding:0 var(--fl-space-2);border:0;outline:0;background:transparent;color:var(--fl-text-strong);font-size:var(--fl-font-size-md)}
.entity-search::placeholder{color:var(--fl-text-muted)}
.entity-picker.has-value .entity-search{flex:0 0 var(--fl-space-1);inline-size:var(--fl-space-1);padding:0;cursor:default}
.entity-token{display:flex;align-items:center;gap:var(--fl-space-1);min-inline-size:0;max-inline-size:calc(100% - var(--fl-space-2));block-size:1.75rem;padding:0 var(--fl-space-1) 0 var(--fl-space-2);border:var(--fl-border-width) solid var(--fl-accent-border);border-radius:var(--fl-radius-sm);background:var(--fl-accent-wash);color:var(--fl-accent)}
.entity-token-copy{display:flex;align-items:baseline;gap:var(--fl-space-2);min-inline-size:0;overflow:hidden;white-space:nowrap}
.entity-token-copy b{overflow:hidden;text-overflow:ellipsis;font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium)}
.entity-token-copy small{overflow:hidden;color:var(--fl-text-muted);font-size:var(--fl-font-size-xs);text-overflow:ellipsis}
.entity-token-remove{display:grid;place-items:center;flex:none;inline-size:1.25rem;block-size:1.25rem;border-radius:var(--fl-radius-sm);color:var(--fl-accent)}
.entity-token-remove:hover{background:var(--fl-surface-hover)}
.entity-token-remove svg{inline-size:.75rem;block-size:.75rem}
.entity-results{position:absolute;z-index:var(--fl-layer-dropdown);inset-block-start:calc(100% + var(--fl-space-1));inset-inline:0;max-block-size:15.5rem;overflow:auto;padding:var(--fl-space-1);border:var(--fl-border-width) solid var(--fl-border-default);border-radius:var(--fl-radius-lg);background:var(--fl-surface-raised);box-shadow:var(--fl-shadow-popover)}
.entity-result{display:flex;align-items:center;justify-content:space-between;gap:var(--fl-space-3);inline-size:100%;min-block-size:2rem;padding:var(--fl-space-1) var(--fl-space-2);border-radius:var(--fl-radius-sm);color:var(--fl-text-strong);text-align:start}
.entity-result span{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entity-result small{flex:0 1 auto;min-inline-size:0;max-inline-size:46%;overflow:hidden;color:var(--fl-text-muted);font-size:var(--fl-font-size-xs);text-overflow:ellipsis;white-space:nowrap}
.entity-result:hover,.entity-result.active{background:var(--fl-surface-hover)}
.entity-no-results{display:flex;align-items:center;min-block-size:2rem;padding:var(--fl-space-1) var(--fl-space-2);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}

/* A line table or line editor narrower than its three columns need: the description on top, the account
   and amount beneath it. Decided by the lines card's own width (the section card is its container), at any tier. */
@container fl-card (max-width:38rem){
  .doc-line{grid-template-columns:minmax(0,1fr) auto;row-gap:var(--fl-space-1)}
  .doc-line .line-account{grid-column:1;grid-row:2}
  .doc-line .num{grid-column:2;grid-row:1}
  .doc-line-head span:nth-child(2){display:none}
  .eline-head{display:none}
  .eline{grid-template-columns:minmax(0,1fr) 7rem 2.25rem;margin-block-end:var(--fl-space-4)}
  .eline .ld{grid-column:1/-1}
}
@media (max-width:40rem){
  .pane-h,.pane-b,.pane-f{padding-inline:var(--fl-space-4)}
  .pane-h{flex-wrap:wrap;row-gap:var(--fl-space-2)}
  .pane-h .doc-title{flex:1 1 12rem;min-inline-size:0}
  .pane-h .nav{margin-inline-start:auto}
  .pane-f .sp{display:none}
  .pane-f .fl-button{flex:1}
  .entity-token-copy small{display:none}
  .vendor-resolution-actions{grid-template-columns:1fr}
  .vendor-resolution-actions .fl-button{inline-size:100%}
}

/* ---------- analytics ---------- */
.analytics-toolbar{flex:none;margin-block-end:0;padding:var(--fl-space-4) var(--fl-space-6)}
.analytics-toolbar .facet-count{display:inline-grid;place-items:center;min-inline-size:1.25rem;block-size:1.25rem;padding:0 var(--fl-space-1);border-radius:var(--fl-radius-full);background:var(--fl-accent-wash);color:var(--fl-accent);font-family:var(--fl-font-mono);font-size:var(--fl-font-size-xs)}
.analytics-body{display:flex;flex:1;flex-direction:column;min-block-size:0}
.analytics-layout{display:grid;flex:1;grid-template-columns:15rem minmax(0,1fr);gap:var(--fl-space-6);min-block-size:0;padding:0 var(--fl-space-6)}
@media (min-width:60.0625rem){
  .analytics-layout.facets-hidden{grid-template-columns:minmax(0,1fr)}
  .analytics-layout.facets-hidden>.analytics-facet-sidebar{display:none}
}
.analytics-facet-sidebar{display:flex;flex-direction:column;gap:var(--fl-space-3);min-inline-size:0;min-block-size:0;overflow-y:auto;padding-block-end:var(--fl-space-6)}
.analytics-facet-sidebar .search-field{flex:none;max-inline-size:none}
.analytics-clear-facets{align-self:flex-start}
.analytics-facet-mobile-head,.analytics-facet-backdrop{display:none}
.analytics-facet-group{display:grid;gap:var(--fl-space-1);padding-block-start:var(--fl-space-2);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle)}
.analytics-facet-head{display:flex;align-items:center;gap:var(--fl-space-2);inline-size:100%;min-block-size:2rem;color:var(--fl-text-strong);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-semibold);text-align:start}
.analytics-facet-head svg{inline-size:.875rem;block-size:.875rem;color:var(--fl-text-muted)}
.analytics-facet-head span{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.analytics-facet-options{display:grid}
.analytics-facet-option{display:grid;grid-template-columns:1rem minmax(0,1fr) 1.5rem auto;align-items:center;gap:var(--fl-space-2);min-block-size:2rem;padding:0 var(--fl-space-1);border-radius:var(--fl-radius-sm);color:var(--fl-text-body);font-size:var(--fl-font-size-sm)}
.analytics-facet-option:hover{background:var(--fl-surface-hover)}
.analytics-facet-include{display:contents;cursor:pointer}
.analytics-facet-option input,.analytics-facet-label,.analytics-facet-count,.analytics-facet-exclude{grid-row:1}
.analytics-facet-option input{grid-column:1}
.analytics-facet-label{grid-column:2;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.analytics-facet-count{grid-column:4;color:var(--fl-text-muted);font-size:var(--fl-font-size-xs)}
.analytics-facet-exclude{grid-column:3;display:inline-grid;place-items:center;inline-size:1.5rem;block-size:1.5rem;border-radius:var(--fl-radius-sm);color:var(--fl-text-muted);opacity:0}
.analytics-facet-option:hover .analytics-facet-exclude,.analytics-facet-exclude:focus-visible,.analytics-facet-option.excluded .analytics-facet-exclude{opacity:1}
.analytics-facet-exclude:hover,.analytics-facet-option.excluded .analytics-facet-exclude{background:var(--fl-status-danger-bg);color:var(--fl-status-danger-fg)}
.analytics-facet-option.on .analytics-facet-label,.analytics-facet-option.excluded .analytics-facet-label{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.analytics-facet-more{justify-self:start;padding:var(--fl-space-1);color:var(--fl-text-link);font-size:var(--fl-font-size-sm)}
.analytics-facet-more:hover{text-decoration:underline}
@media (hover:none){.analytics-facet-exclude{opacity:1}}
.analytics-main{container:analytics-main / inline-size;display:flex;flex-direction:column;gap:var(--fl-space-4);min-inline-size:0;min-block-size:0;overflow:auto;padding-block-end:var(--fl-space-6)}
.analytics-message{padding:0 var(--fl-space-6)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--fl-space-3)}
.kpi{display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:var(--fl-space-2);min-inline-size:0;min-block-size:8.5rem;padding:var(--fl-space-4);border:var(--fl-border-width) solid var(--fl-border-subtle);border-radius:var(--fl-radius-lg);background:var(--fl-surface-card);color:var(--fl-text-body);text-align:start}
.kpi.drill{transition:border-color var(--fl-duration-fast) var(--fl-ease-out)}
.kpi.drill:hover{border-color:var(--fl-accent-border)}
.kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--fl-space-2);min-inline-size:0}
.kpi .label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fl-space-1);min-inline-size:0;color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium)}
.kpi-period{color:inherit;white-space:nowrap}
.kpi-action{display:inline-flex;flex:none;align-items:center;gap:var(--fl-space-1);color:var(--fl-text-link);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium);white-space:nowrap}
.kpi .value{overflow:hidden;color:var(--fl-text-strong);font-family:var(--fl-font-mono);font-size:var(--fl-font-size-2xl);font-weight:var(--fl-font-weight-medium);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.kpi .meta{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);overflow-wrap:anywhere}
.kpi-context{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--fl-space-1) 0;line-height:var(--fl-line-height-snug)}
.kpi-context>span+span::before{content:"·";margin:0 var(--fl-space-2)}
.kpi-trend{display:inline-flex;align-items:center;gap:var(--fl-space-1);color:var(--fl-text-strong)}
.kpi-trend.up svg.i{color:var(--fl-status-danger-fg)}
.kpi-trend.down svg.i{color:var(--fl-status-success-fg)}
.kpi-trend.flat svg.i{color:var(--fl-text-muted)}
.kpi-failed .label svg.i,.kpi-failed .value{color:var(--fl-status-danger-fg)}
.kpi-failed .meta{color:var(--fl-text-body)}
.kpi-healthy .label svg.i,.kpi-healthy .value{color:var(--fl-status-success-fg)}
.kpi-skeleton{align-content:space-between}
.kpi-skeleton .fl-skeleton:nth-child(1){inline-size:55%}
.kpi-skeleton .fl-skeleton:nth-child(2){inline-size:40%;block-size:1.5rem}
.kpi-skeleton .fl-skeleton:nth-child(3){inline-size:70%}
.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--fl-space-4)}
.chart-card{container:analytics-card / inline-size;min-inline-size:0}
.chart-card.full{grid-column:1/-1}
.bars{display:grid;grid-template-columns:minmax(6rem,1fr) minmax(3.5rem,2fr) max-content;gap:var(--fl-space-1) 0}
.bars.drillable{grid-template-columns:minmax(6rem,1fr) minmax(3.5rem,2fr) max-content 1rem}
.bar-row{display:grid;grid-column:1/-1;grid-template-columns:subgrid;gap:var(--fl-space-3);align-items:center;inline-size:100%;padding:var(--fl-space-1) var(--fl-space-2);border-radius:var(--fl-radius-sm);font-size:var(--fl-font-size-sm);text-align:start}
.bar-row.drill:hover{background:var(--fl-surface-hover)}
.bar-row.drill svg.i{color:var(--fl-text-muted)}
.bar-row.drill:hover svg.i{color:var(--fl-accent)}
.bar-label{min-inline-size:0;overflow:hidden;color:var(--fl-text-body);text-overflow:ellipsis;white-space:nowrap}
.bar-meter{appearance:none;inline-size:100%;min-inline-size:0;block-size:.5rem;border:0;border-radius:var(--fl-radius-full);overflow:hidden;background:var(--fl-surface-subtle)}
.bar-meter::-webkit-progress-bar{border-radius:var(--fl-radius-full);background:var(--fl-surface-subtle)}
.bar-meter::-webkit-progress-value{border-radius:var(--fl-radius-full);background:var(--fl-viz-1)}
.bar-meter::-moz-progress-bar{border-radius:var(--fl-radius-full);background:var(--fl-viz-1)}
.bar-value{min-inline-size:max-content;color:var(--fl-text-strong);font-family:var(--fl-font-mono);font-size:var(--fl-font-size-sm);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}
.pie-chart{display:grid;grid-template-columns:minmax(6rem,7.5rem) minmax(0,1fr);align-items:center;gap:var(--fl-space-4);margin:0}
.pie{display:block;inline-size:100%;aspect-ratio:1}
.pie-slice{stroke:var(--fl-surface-card);stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.pie-legend{display:grid;gap:var(--fl-space-1);min-inline-size:0}
.pie-legend-row{display:grid;grid-template-columns:.75rem minmax(0,1fr) max-content 2.25rem 1rem;align-items:center;gap:var(--fl-space-2);inline-size:100%;min-block-size:2rem;padding:var(--fl-space-1) var(--fl-space-2);border-radius:var(--fl-radius-sm);color:var(--fl-text-body);font-size:var(--fl-font-size-sm);text-align:start}
.pie-legend-row:hover{background:var(--fl-surface-hover)}
.pie-legend-row svg.i{color:var(--fl-text-muted)}
.pie-legend-row:hover svg.i{color:var(--fl-accent)}
.pie-swatch{inline-size:.75rem;block-size:.75rem;border-radius:var(--fl-radius-sm)}
.pie-label{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pie-value,.pie-percent{font-family:var(--fl-font-mono);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}
.pie-value{color:var(--fl-text-strong)}
.pie-percent{color:var(--fl-text-muted)}
.pie-slice.series-1{fill:var(--fl-viz-1)}.pie-swatch.series-1{background:var(--fl-viz-1)}
.pie-slice.series-2{fill:var(--fl-viz-2)}.pie-swatch.series-2{background:var(--fl-viz-2)}
.pie-slice.series-3{fill:var(--fl-viz-3)}.pie-swatch.series-3{background:var(--fl-viz-3)}
.pie-slice.series-4{fill:var(--fl-viz-4)}.pie-swatch.series-4{background:var(--fl-viz-4)}
.pie-slice.series-5{fill:var(--fl-viz-5)}.pie-swatch.series-5{background:var(--fl-viz-5)}
.pie-slice.series-6{fill:var(--fl-viz-6)}.pie-swatch.series-6{background:var(--fl-viz-6)}
.pie-slice.series-7{fill:var(--fl-viz-7)}.pie-swatch.series-7{background:var(--fl-viz-7)}
.pie-slice.series-8{fill:var(--fl-viz-8)}.pie-swatch.series-8{background:var(--fl-viz-8)}
.account-table{table-layout:fixed}
.account-table :is(th,td):first-child{padding-inline-start:var(--fl-space-2)}
.account-table :is(th,td):last-child{padding-inline-end:var(--fl-space-2)}
.account-table th.account-number{inline-size:5rem}
.account-table th.account-share{inline-size:25%}
.account-table th.account-amount{inline-size:8rem}
.account-table th.account-percent{inline-size:4.5rem}
.account-table td.account-number{color:var(--fl-text-muted);text-align:start}
.account-table td.account-name{overflow:hidden;color:var(--fl-text-strong);text-overflow:ellipsis;white-space:nowrap}
.account-table td.account-amount{color:var(--fl-text-strong)}
.account-table td.account-percent{color:var(--fl-text-muted)}
.account-table .account-other td.account-name{color:var(--fl-text-muted)}
.account-table .bar-meter{display:block}
.chart-empty{margin:0;color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
@container analytics-main (max-width:65rem){
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container analytics-main (max-width:32.5rem){
  .kpi-grid,.dash-grid{grid-template-columns:1fr}
  .chart-card.full{grid-column:auto}
}
@container analytics-card (max-width:22.5rem){
  .bars{grid-template-columns:minmax(0,1fr) max-content}
  .bars.drillable{grid-template-columns:minmax(0,1fr) max-content 1rem}
  .bar-meter{display:none}
}
@container analytics-card (max-width:25rem){
  .pie-chart{grid-template-columns:1fr;justify-items:center}
  .pie{inline-size:min(100%,10rem)}
  .pie-legend{inline-size:100%}
}
@container analytics-card (max-width:32.5rem){
  .account-table .account-share{display:none}
  .account-table th.account-number{inline-size:4rem}
  .account-table th.account-amount{inline-size:6.5rem}
  .account-table th.account-percent{inline-size:3.5rem}
}
@media (max-width:60rem){
  .analytics-toolbar{padding-inline:var(--fl-space-4)}
  .analytics-toolbar .search-field{flex-basis:100%;max-inline-size:none}
  .analytics-toolbar .fl-toolbar__end{margin-inline-start:0}
  .analytics-layout{display:block;overflow:auto;padding-inline:var(--fl-space-4)}
  .analytics-main{overflow:visible}
  .analytics-facet-sidebar{display:none}
  .analytics-layout.facets-open .analytics-facet-sidebar{position:fixed;inset-block:0;inset-inline-start:var(--rail-w);z-index:var(--fl-layer-dialog);display:flex;inline-size:min(18rem,calc(100vw - var(--rail-w) - var(--fl-space-6)));padding:var(--fl-space-4);border-inline-end:var(--fl-border-width) solid var(--fl-border-default);background:var(--fl-surface-raised);box-shadow:var(--fl-shadow-dialog)}
  .analytics-layout.facets-open .analytics-facet-backdrop{position:fixed;inset:0;z-index:var(--fl-layer-overlay);display:block;background:var(--fl-surface-overlay)}
  .analytics-facet-mobile-head{display:flex;align-items:center;justify-content:space-between}
  .analytics-facet-mobile-head strong{color:var(--fl-text-strong);font-size:var(--fl-font-size-lg);font-weight:var(--fl-font-weight-semibold)}
}

/* ---------- administration ---------- */
#adminView>.fl-topbar{overflow:hidden}
.admin-tabs{min-inline-size:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.admin-scroll{flex:1;min-block-size:0;overflow:auto}
.admin-page{display:flex;flex-direction:column;gap:var(--fl-space-4)}
.admin-card{min-inline-size:0;overflow:hidden}
.admin-card-head{align-items:flex-start}
.admin-card-head>div:first-child{display:grid;gap:var(--fl-space-1);min-inline-size:0}
.admin-card-head .sub{margin:0}
.admin-card-actions{display:flex;flex:none;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--fl-space-2)}
.admin-card-foot{justify-content:center}
.admin-list-head{display:flex;align-items:center;justify-content:space-between;gap:var(--fl-space-3);padding:var(--fl-space-3) var(--fl-space-5);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.admin-list-head .sub{margin:0}
.admin-list-head .search-field{flex:0 1 18rem}
.admin-loading{display:grid;gap:var(--fl-space-3)}
.admin-loading .fl-skeleton:nth-child(2){inline-size:40%}
.admin-loading .fl-skeleton:nth-child(3){inline-size:70%}
.admin-loading .fl-skeleton:nth-child(4){inline-size:55%}
.admin-empty{margin:0;padding:var(--fl-space-8) var(--fl-space-5);color:var(--fl-text-muted);text-align:center}
.card-note{padding:var(--fl-space-4) var(--fl-space-5) 0}
.card-note:last-child{padding-block-end:var(--fl-space-4)}
.card-note .fl-banner p{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fl-space-2)}
.table-scroll{overflow:auto}
.admin-table{min-inline-size:42rem}
.admin-table thead th{block-size:2.5rem;background:var(--fl-surface-inset)}
.admin-table tbody td{block-size:3rem}
.admin-table :is(th,td):first-child{padding-inline-start:var(--fl-space-5)}
.admin-table :is(th,td):last-child{padding-inline-end:var(--fl-space-5)}
.admin-table thead [data-pinned]{background:var(--fl-surface-inset)}
.admin-table th.r{text-align:end}
.admin-table td.mono,.admin-table td[data-numeric]{white-space:nowrap}
.admin-table .account-suspended>td{background:var(--fl-surface-subtle)}
.coa-account-name{display:flex;min-width:0;flex-direction:column;padding-inline-start:calc(var(--coa-depth,0)*var(--fl-space-4))}
.coa-account-name .sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-empty{padding:var(--fl-space-8) var(--fl-space-5);color:var(--fl-text-muted);text-align:center}
@media (max-width:60rem){
  #adminView>.fl-topbar{align-items:stretch;block-size:auto;flex-direction:column;gap:var(--fl-space-2);overflow:visible;padding-block:var(--fl-space-3)}
  #adminView>.fl-topbar .fl-topbar__title{flex:none}
  .admin-tabs{inline-size:100%;padding-block-end:var(--fl-space-1)}
  .admin-list-head{align-items:stretch;flex-direction:column;padding-inline:var(--fl-space-4)}
  .admin-list-head .search-field{flex-basis:auto;max-inline-size:none}
  .date-time-filter{grid-template-columns:minmax(0,1fr)}
}
.admin-table tbody tr.skeleton-row:hover>td{background:transparent}
.skeleton-row>td[colspan]{block-size:0;padding:0}
.person{display:flex;align-items:center;gap:var(--fl-space-3)}
.person b,.person span{display:block}
.person .av{display:inline-grid}
.person b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.av{display:inline-grid;place-items:center;flex:none;inline-size:2rem;block-size:2rem;border-radius:var(--fl-radius-full);background:var(--fl-surface-selected);color:var(--fl-accent);font-size:var(--fl-font-size-2xs);font-weight:var(--fl-font-weight-semibold);text-transform:uppercase}
.role-checks{display:grid;grid-template-columns:repeat(2,max-content);align-items:center;gap:var(--fl-space-1) var(--fl-space-3)}
.role-checks .fl-checkbox{font-size:var(--fl-font-size-sm)}
.people-actions,.session-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--fl-space-2);white-space:nowrap}
.people-actions .fl-badge{min-block-size:1.75rem}
.session-person,.audit-actor{display:flex;flex-direction:column;min-inline-size:0}
.session-person b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.session-source{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fl-space-2)}
.audit-table .admin-table{min-inline-size:68rem}
.admin-table td.audit-detail{font-size:var(--fl-font-size-xs);white-space:normal}
.audit-detail>div{min-inline-size:12.5rem;max-inline-size:26rem;overflow-wrap:anywhere}
.audit-id{display:block;max-inline-size:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* roles */
.role-list{display:grid;grid-template-columns:minmax(12rem,1fr) auto auto}
.role-row{display:grid;grid-column:1/-1;grid-template-columns:subgrid;min-inline-size:0;border-block-start:var(--fl-border-width) solid var(--fl-border-subtle)}
.role-row:first-child{border-block-start:0}
.role-summary{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:center;gap:var(--fl-space-3) var(--fl-space-4);min-inline-size:0;padding:var(--fl-space-3) var(--fl-space-5)}
.role-row>.role-editor{grid-column:1/-1}
.role-toggle{display:flex;align-items:center;gap:var(--fl-space-2);min-inline-size:0;text-align:start}
.role-toggle svg.i{color:var(--fl-text-muted)}
.role-toggle>span{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.role-toggle b,.role-toggle small{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-toggle b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-semibold)}
.role-toggle small{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.role-facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fl-space-1) var(--fl-space-2);min-inline-size:0}
.role-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--fl-space-2);min-inline-size:0}
.role-editor{display:flex;flex-direction:column;gap:var(--fl-space-5);padding:var(--fl-space-4) var(--fl-space-5);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle);background:var(--fl-surface-inset)}
.admin-card>.role-editor{border-block-start:0;border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.role-editor-actions{display:flex;align-items:center;gap:var(--fl-space-2)}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--fl-space-5) var(--fl-space-4)}
.permission-group{display:flex;flex-direction:column;gap:var(--fl-space-2);min-inline-size:0;margin:0;padding:0;border:0}
.permission-group legend{margin-block-end:var(--fl-space-2);padding:0;color:var(--fl-text-strong);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-semibold)}
.permission-group label{display:flex;align-items:flex-start;gap:var(--fl-space-2);font-size:var(--fl-font-size-sm);cursor:pointer}
.permission-group .check{display:flex;align-items:center;block-size:1lh}
.permission-group span{display:flex;flex-direction:column;min-inline-size:0}
.permission-group b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.permission-group small{color:var(--fl-text-muted);font-size:var(--fl-font-size-xs);overflow-wrap:anywhere}

/* quickbooks */
.qbo-workspace{display:flex;flex-direction:column;gap:var(--fl-space-4);min-inline-size:0}
.qbo-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--fl-space-4)}
.qbo-workspace-head>div{display:grid;gap:var(--fl-space-1);min-inline-size:0}
.qbo-workspace-head h2,.qbo-workspace-head p{margin:0}
.qbo-workspace-head h2{color:var(--fl-text-strong);font-size:var(--fl-font-size-xl)}
.qbo-workspace-head p{color:var(--fl-text-body);font-size:var(--fl-font-size-sm)}
.qbo-tabs{--qbo-tab-height:2.5rem;min-block-size:var(--qbo-tab-height)}
.qbo-tabs .fl-tabs__tab{min-block-size:var(--qbo-tab-height);box-sizing:border-box}
.qbo-section{display:flex;flex-direction:column;gap:var(--fl-space-4);min-inline-size:0}
.qbo-active-card{display:flex;flex-direction:column;gap:var(--fl-space-4);padding:var(--fl-space-5);overflow:visible}
.qbo-active-main{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--fl-space-4);min-inline-size:0}
.qbo-active-copy{display:flex;flex-direction:column;gap:var(--fl-space-2);min-inline-size:0}
.qbo-active-copy h2{margin:0;font-size:var(--fl-font-size-base)}
.qbo-active-name{margin:0;color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium);overflow-wrap:anywhere}
.qbo-active-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fl-space-2);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.integration-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--fl-space-2)}
.qbo-connection-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--fl-space-3);padding-block-start:var(--fl-space-4);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle)}
.qbo-connection-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--fl-space-3);margin:0}
.qbo-connection-summary dl>div{display:flex;flex-direction:column;gap:var(--fl-space-1);min-inline-size:0}
.qbo-connection-summary dt{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.qbo-connection-summary dd{min-inline-size:0;margin:0;color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium);overflow-wrap:anywhere}
.qbo-oauth-menu{position:relative}
.qbo-oauth-menu summary{list-style:none}
.qbo-oauth-menu summary::-webkit-details-marker{display:none}
.qbo-oauth-menu>div{position:absolute;inset-block-start:calc(100% + var(--fl-space-1));inset-inline-end:0;z-index:var(--fl-layer-dropdown);display:grid;min-inline-size:14rem;padding:var(--fl-space-1);border:var(--fl-border-width) solid var(--fl-border-default);border-radius:var(--fl-radius-lg);background:var(--fl-surface-raised);box-shadow:var(--fl-shadow-popover)}
.qbo-active-note{margin:0;padding-block-start:var(--fl-space-3);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle)}
.qbo-panes{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:var(--fl-space-4)}
.qbo-config-list{display:flex;flex-direction:column}
.qbo-config-row{display:flex;flex-direction:column;min-inline-size:0;border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.qbo-config-row:last-child{border-block-end:0}
.qbo-config-summary{display:grid;grid-template-columns:minmax(10rem,1fr) auto auto;align-items:center;gap:var(--fl-space-2);min-inline-size:0;padding:var(--fl-space-3) var(--fl-space-5)}
.qbo-config-toggle{display:flex;align-items:center;gap:var(--fl-space-2);min-inline-size:0;text-align:start}
.qbo-config-toggle svg.i{color:var(--fl-text-muted)}
.qbo-config-toggle>span{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.qbo-config-toggle b,.qbo-config-toggle small{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qbo-config-toggle b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-semibold)}
.qbo-config-toggle small{color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.qbo-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--fl-space-2);min-inline-size:0}
.qbo-row-actions .fl-badge{min-block-size:1.75rem}
.qbo-config-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--fl-space-3);margin:0;padding:0 var(--fl-space-5) var(--fl-space-4) calc(var(--fl-space-5) + 1rem + var(--fl-space-2))}
.qbo-config-details>div{min-inline-size:0;padding-block-start:var(--fl-space-2);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle)}
.qbo-config-details dt{margin-block-end:var(--fl-space-1);color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.qbo-config-details dd{min-inline-size:0;margin:0;color:var(--fl-text-strong);font-size:var(--fl-font-size-sm);overflow-wrap:anywhere}
.qbo-config-editor{display:flex;flex-direction:column;gap:var(--fl-space-4);min-inline-size:0;padding:var(--fl-space-4) var(--fl-space-5);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle);background:var(--fl-surface-inset)}
.qbo-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--fl-space-4) var(--fl-space-3)}
.qbo-field-full{grid-column:1/-1}
.qbo-form-section{min-inline-size:0;padding-block-start:var(--fl-space-4);border-block-start:var(--fl-border-width) solid var(--fl-border-default)}
.qbo-form-section h3{margin:0;font-size:var(--fl-font-size-md)}
.qbo-form-section p{margin:var(--fl-space-1) 0 0}
.qbo-input-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--fl-space-2)}
.qbo-editor-actions{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--fl-space-2)}
.qbo-environment-field{min-inline-size:0;margin:0;padding:0;border:0}
.qbo-environment-field legend{margin-block-end:6px;padding:0}
.qbo-environment-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:2px;border-radius:var(--fl-radius-md);background:var(--fl-surface-subtle)}
.qbo-environment-toggle label{position:relative;display:flex;align-items:center;justify-content:center;min-block-size:2rem;min-inline-size:0;border-radius:var(--fl-radius-sm);color:var(--fl-text-body);font-size:var(--fl-font-size-sm);font-weight:var(--fl-font-weight-medium);cursor:pointer}
.qbo-environment-toggle label:hover{color:var(--fl-text-strong)}
.qbo-environment-toggle label:has(input:checked){background:var(--fl-surface-raised);color:var(--fl-text-strong);box-shadow:0 0 0 var(--fl-border-width) var(--fl-border-default)}
.qbo-environment-toggle label:has(input:focus-visible){outline:var(--fl-focus-ring-width) solid var(--fl-focus-ring);outline-offset:1px}
.qbo-environment-toggle input{position:absolute;opacity:0;pointer-events:none}
.qbo-feed-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:center;gap:var(--fl-space-2);padding:var(--fl-space-3) var(--fl-space-5);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.qbo-failed-toggle{font-size:var(--fl-font-size-sm)}
.qbo-feed-list{display:flex;flex-direction:column}
.qbo-feed-event{display:grid;grid-template-columns:1rem minmax(0,1fr);align-items:start;gap:var(--fl-space-2);padding:var(--fl-space-3) var(--fl-space-5);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.qbo-feed-ic{display:flex;align-items:center;block-size:1lh;color:var(--fl-status-success-fg)}
.qbo-feed-ic.failed{color:var(--fl-status-danger-fg)}
.qbo-feed-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--fl-space-2);min-inline-size:0}
.qbo-feed-title b{min-inline-size:0;color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.qbo-feed-title time{flex:none;color:var(--fl-text-muted);font-size:var(--fl-font-size-sm)}
.qbo-feed-event p{margin:var(--fl-space-1) 0 0;color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);overflow-wrap:anywhere}
.qbo-show-more{margin:var(--fl-space-2) var(--fl-space-3)}
.coa-editor{display:flex;flex-direction:column;border-block-end:var(--fl-border-width) solid var(--fl-border-subtle);background:var(--fl-surface-inset)}
.coa-editor-head{display:grid;grid-template-columns:minmax(12rem,.65fr) minmax(0,1.35fr);align-items:end;gap:var(--fl-space-3);padding:var(--fl-space-4) var(--fl-space-5)}
.coa-filter-grid{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(10rem,.7fr) minmax(8rem,.5fr);align-items:center;gap:var(--fl-space-2);min-inline-size:0}
.coa-filter-grid .search-field{max-inline-size:none}
.coa-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--fl-space-3);min-inline-size:0;padding:var(--fl-space-2) var(--fl-space-5);border-block-start:var(--fl-border-width) solid var(--fl-border-subtle)}
.coa-table-toolbar p{margin:0}
.coa-bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--fl-space-2)}
.coa-account-table-wrap{max-block-size:50dvh;border-block:var(--fl-border-width) solid var(--fl-border-subtle)}
.coa-account-table{min-inline-size:42rem}
.coa-account-table thead{position:sticky;inset-block-start:0;z-index:var(--fl-layer-sticky)}
.coa-account-table .coa-check-cell{inline-size:2.5rem;text-align:center}
.coa-account-table td b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium);overflow-wrap:anywhere}
.coa-account-table tbody tr.selected{background:var(--fl-surface-selected)}
.coa-account-table tbody tr:has(input:focus-visible){outline:var(--fl-focus-ring-width) solid var(--fl-focus-ring);outline-offset:calc(-1 * var(--fl-focus-ring-width))}
.coa-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--fl-space-2);padding:var(--fl-space-2) var(--fl-space-5)}
.coa-editor-actions>.sub{margin-inline-end:auto}
.coa-preset-list{display:flex;flex-direction:column}
.coa-preset-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--fl-space-4);min-inline-size:0;padding:var(--fl-space-3) var(--fl-space-5);border-block-end:var(--fl-border-width) solid var(--fl-border-subtle)}
.coa-preset-row:last-child{border-block-end:0}
.coa-preset-row>div:first-child{display:grid;gap:var(--fl-space-1);min-inline-size:0}
.coa-preset-row b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-semibold)}
.coa-preset-row p{margin:0;color:var(--fl-text-muted);font-size:var(--fl-font-size-sm);overflow-wrap:anywhere}
.coa-preset-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--fl-space-2)}
.qbo-vendor-table{min-inline-size:100%}
.qbo-vendor-table b,.vendor-email{display:block}
.qbo-vendor-table b{color:var(--fl-text-strong);font-weight:var(--fl-font-weight-medium)}
.coa-preset{margin-block-end:var(--fl-space-3)}
.lines-hint{margin:var(--fl-space-2) 0 0}

@media (max-width:60rem){
  .admin-card-head{flex-direction:column}
  .admin-card-actions{justify-content:flex-start}
  .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:60rem){
  .role-list,.role-row,.role-summary{display:flex;flex-direction:column;align-items:stretch}
  .role-summary{gap:var(--fl-space-2)}
  .role-actions{justify-content:flex-start}
  .role-actions:empty{display:none}
  .qbo-active-main{flex-direction:column}
  .qbo-active-main .integration-actions{justify-content:flex-start}
  .qbo-connection-summary,.qbo-connection-summary dl{grid-template-columns:1fr}
  .qbo-oauth-menu,.qbo-oauth-menu summary{inline-size:100%}
  .qbo-oauth-menu>div{position:static;margin-block-start:var(--fl-space-2);box-shadow:none}
  .qbo-config-summary{grid-template-columns:minmax(0,1fr) auto}
  .qbo-config-toggle{grid-column:1/-1}
  .qbo-config-summary>.fl-badge{grid-column:1;justify-self:start}
  .qbo-row-actions{grid-column:2}
  .qbo-form-grid,.qbo-config-details,.qbo-feed-filters{grid-template-columns:1fr}
  .qbo-config-details{padding-inline-start:var(--fl-space-5)}
  .qbo-field-full{grid-column:auto}
  .qbo-input-action{grid-template-columns:1fr}
  .qbo-editor-actions{grid-template-columns:1fr 1fr}
  .qbo-editor-actions>span{display:none}
  .qbo-editor-actions [data-tone="danger"]{grid-column:1/-1}
  .qbo-editor-actions .fl-button,.qbo-input-action .fl-button{inline-size:100%}
  .coa-editor-head{grid-template-columns:1fr}
  .coa-filter-grid{grid-template-columns:1fr 1fr}
  .coa-filter-grid .search-field{grid-column:1/-1}
  .coa-table-toolbar{align-items:flex-start;flex-direction:column}
  .coa-preset-row{grid-template-columns:minmax(0,1fr) auto}
  .coa-preset-row>span{grid-column:1}
  .coa-preset-actions{grid-column:2;grid-row:1/3}
}
@media (max-width:40rem){
  .admin-page{padding:var(--fl-space-4)}
  .permission-grid{grid-template-columns:1fr}
  .admin-list-head{flex-direction:column;align-items:stretch;padding-inline:var(--fl-space-4)}
  .admin-list-head .search-field{flex-basis:auto;max-inline-size:none}
  .qbo-workspace-head{padding-inline:0}
  .qbo-tabs{padding-inline:var(--fl-space-1)}
  .coa-editor-head,.coa-table-toolbar,.coa-preset-row,.coa-editor-actions{padding-inline:var(--fl-space-4)}
  .coa-filter-grid{grid-template-columns:1fr}
  .coa-filter-grid .search-field{grid-column:auto}
  .coa-bulk-actions{inline-size:100%;justify-content:flex-start}
  .coa-editor-actions{flex-wrap:wrap}
}
