/* Approved compact workspace. Presentation only: permissions and financial rules live on the server. */
:root { --workspace-radius: 14px; --workspace-gap: 18px; }
:where(.admin-content,.portal-content) { min-width:0; }
:where(.admin-content,.portal-content) :where(section,article,form,fieldset,.panel,.grid,.flex,dl,dd) { min-width:0; }
:where(.admin-content,.portal-content) :where(input:not([type=checkbox]):not([type=radio]),select,textarea) { max-width:100%; }
:where(.admin-content,.portal-content) :where(.mono,code,pre,dd) { overflow-wrap:anywhere; }
:where(.admin-content,.portal-content) .panel { border-radius:var(--workspace-radius); box-shadow:0 2px 7px rgb(30 35 65 / 2%); }
.ff-table-scroll { position:relative; width:100%; max-width:100%; min-width:0; overflow:auto; overscroll-behavior-inline:contain; border-radius:12px; }
.ff-table-scroll:focus-visible { outline:2px solid var(--accent,#6258df); outline-offset:3px; }
.ff-table-scroll table { width:100%; border-collapse:collapse; }
.ff-table-scroll :where(.btn,button) { white-space:nowrap; }
.ff-money-exact { display:block; max-width:100%; margin-top:3px; font-size:calc(11px * var(--ff-text-scale, 1)); color:var(--muted,#758093); }
.ff-money-exact [data-money-toggle] { background:none; border:0; padding:0; color:inherit; font:inherit; text-align:start; cursor:pointer; width:fit-content; max-width:100%; border-bottom:1px dotted var(--border,#d7dce8); font-weight:400; }
.ff-money-exact [aria-expanded=true] { margin-bottom:5px; }
.ff-money-exact [data-money-value]{display:block}.ff-money-exact [hidden]{display:none!important}
.ff-money-exact .mono { font-variant-numeric:tabular-nums; white-space:normal; overflow-wrap:anywhere; }
.ff-workspace-heading { display:flex; justify-content:space-between; align-items:start; gap:16px; margin-bottom:22px; }
.ff-workspace-heading h2 { font-size:calc(27px * var(--ff-text-scale, 1)); line-height:1.25; letter-spacing:-.025em; font-weight:750; }
.ff-workspace-heading p { margin-top:7px; color:var(--muted,#758093); font-size:calc(13px * var(--ff-text-scale, 1)); }
.ff-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,340px); gap:var(--workspace-gap); align-items:start; }
.ff-detail-main,.ff-detail-aside { display:grid; gap:var(--workspace-gap); min-width:0; }
.ff-detail-aside { position:sticky; top:78px; }
.ff-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:14px; margin-bottom:20px; }
.ff-kpi { padding:20px; border:1px solid var(--border,#e3e7ed); background:var(--panel,#fff); border-radius:13px; min-width:0; }
.ff-kpi dt { color:var(--muted,#758093); font-size:calc(12px * var(--ff-text-scale, 1)); margin-bottom:10px; }
.ff-kpi dd { font-size:calc(23px * var(--ff-text-scale, 1)); font-weight:650; font-variant-numeric:tabular-nums; }
.ff-tabs { display:flex; gap:22px; overflow-x:auto; border-bottom:1px solid var(--border,#e3e7ed); margin-bottom:20px; padding:0; }
.ff-tabs button { flex-shrink:0; background:none; border:0; border-bottom:2px solid transparent; padding:13px 1px; font:600 calc(13px * var(--ff-text-scale, 1))/1.5 system-ui; color:var(--muted,#758093); cursor:pointer; }
.ff-tabs button[aria-selected=true] { color:var(--accent,#6258df); border-bottom-color:var(--accent,#6258df); }
.ff-tabs button:focus-visible { outline:2px solid var(--accent,#6258df); outline-offset:-3px; border-radius:6px; }
.ff-tabs [role=tab][hidden], [data-ui-panel][hidden] { display:none!important; }
.ff-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.ff-section-heading h3 { font-size:calc(16px * var(--ff-text-scale, 1)); font-weight:700; }
.ff-sticky-save { position:sticky; bottom:12px; z-index:8; padding:15px 18px; background:var(--panel,#fff); border:1px solid var(--border,#e3e7ed); box-shadow:0 4px 20px rgb(30 35 65 / 7%); border-radius:12px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.ff-code { max-width:100%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; border-radius:10px; background:var(--surface,#f5f6fa); border:1px solid var(--border,#e3e7ed); padding:18px; font:calc(12px * var(--ff-text-scale, 1))/1.8 ui-monospace,SFMono-Regular,monospace; }
.ff-integration-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.ff-definition { display:grid; gap:0; }
.ff-definition > div { display:flex; justify-content:space-between; align-items:start; gap:20px; padding:13px 0; border-bottom:1px solid var(--border-soft,#edf0f5); }
.ff-definition dt { color:var(--muted,#758093); font-size:calc(12px * var(--ff-text-scale, 1)); }
.ff-definition dd { text-align:end; font-size:calc(13px * var(--ff-text-scale, 1)); font-weight:550; overflow-wrap:anywhere; }
.ff-definition > div:last-child { border-bottom:0; }
@media(max-width:1000px) {
 .ff-detail-layout { grid-template-columns:minmax(0,1fr); }
 .ff-detail-aside { position:static; }
 .ff-integration-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:640px) {
 :where(.admin-content,.portal-content) { width:100%; max-width:100%; padding-inline:14px!important; }
 :where(.admin-content,.portal-content) :where(.filter-bar,.page-header,.ff-workspace-heading) { flex-wrap:wrap; }
 :where(.admin-content,.portal-content) :where(.filter-bar) > * { min-width:0!important; max-width:100%; }
 :where(.admin-content,.portal-content) :where(.filter-bar) :where(input,select) { width:100%; }
 .ff-workspace-heading h2 { font-size:calc(23px * var(--ff-text-scale, 1)); }
 .ff-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .ff-kpi { padding:14px; }
 .ff-kpi dd { font-size:calc(18px * var(--ff-text-scale, 1)); }
 .ff-tabs { gap:18px; }
 .ff-table-scroll table:not([data-ui-cards]) { min-width:680px; }
 table[data-ui-cards],table[data-ui-cards] tbody { display:block; min-width:0!important; width:100%; }
 table[data-ui-cards] thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 table[data-ui-cards] tr { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0; padding:16px; border:1px solid var(--border,#e3e7ed); border-radius:12px; background:var(--panel,#fff); }
 table[data-ui-cards] td { display:block; padding:0!important; width:auto!important; max-width:100%!important; min-width:0!important; border:0!important; overflow-wrap:anywhere; }
 table[data-ui-cards] td::before { content:attr(data-ui-label); display:block; font:500 calc(10px * var(--ff-text-scale, 1))/1.5 system-ui; color:var(--muted,#758093); margin-bottom:5px; }
 table[data-ui-cards] td:first-child,table[data-ui-cards] td:last-child,table[data-ui-cards] td[colspan] { grid-column:1/-1; }
 .ff-sticky-save { bottom:8px; }
 .ff-definition > div { flex-wrap:wrap; gap:6px; }
 .ff-definition dd { text-align:start; }
}
@media(prefers-reduced-motion:reduce) { .ff-tabs * { transition:none; } }
@media print { [data-ui-panel][hidden] { display:block!important; } .ff-table-scroll { overflow:visible; } .ff-detail-aside,.ff-sticky-save { position:static; } }
.security-step-up { max-width:460px; margin:48px auto; }
.fw-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr)); gap:18px; }
.fw-wallet { border-radius:14px; box-shadow:0 2px 7px rgb(30 35 65 / 2%); }
.fw-wallet-amount { font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
@media(max-width:640px) { .fw-activity { flex-wrap:wrap; } .fw-activity .fw-money { margin-inline-start:auto; } }
.ff-native-totals .font-bold { font-size:calc(24px * var(--ff-text-scale, 1)); font-variant-numeric:tabular-nums; letter-spacing:-.03em; }
.ff-native-totals > .grid > div { border-inline-end:1px solid var(--border,#e3e7ed); padding-inline-end:16px; }
.ff-native-totals > .grid > div:last-child { border:0; }
.ff-detail-main .panel { margin-bottom:18px; }
.ff-detail-aside > .panel { margin-bottom:0; }
@media(max-width:640px) { .ff-native-totals .font-bold { font-size:calc(20px * var(--ff-text-scale, 1)); } .ff-native-totals > .grid > div { border:0; } }
.ff-native-totals > .grid > div { background:var(--panel,#fff); border:1px solid var(--border,#e3e7ed); border-radius:13px; padding:18px; }
.ff-native-totals > .grid > div:last-child { border:1px solid var(--border,#e3e7ed); }
[data-security-shell] { font-size:calc(15px * var(--ff-text-scale, 1)); }
[data-security-shell] .security-main .panel { border-radius:16px; box-shadow:0 8px 28px rgb(40 45 80 / 4%); }
[data-security-shell] .security-step-up .page-header h2 { font-size:calc(26px * var(--ff-text-scale, 1)); }
[data-security-shell] .security-step-up input { min-height:46px; }
.ff-task-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ff-task-links>form{margin:0}.ff-row-actions{min-width:150px}.ff-row-actions summary{font-size:calc(12px * var(--ff-text-scale, 1));color:var(--muted);cursor:pointer}.ff-row-actions[open]{max-width:290px}.ff-next-actions{border-inline-start:3px solid var(--accent,#6258df)}
.ff-detail-main dl:not(.ff-definition){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:18px}.ff-detail-main dl:not(.ff-definition)>div{margin:0!important;padding:10px 0;min-width:0}.ff-detail-main dl dt{font-size:calc(12px * var(--ff-text-scale, 1))}.ff-detail-main dl dd{margin-top:5px;font-size:calc(14px * var(--ff-text-scale, 1));font-variant-numeric:tabular-nums}
.ff-event-list .log-entry{padding:14px;border:1px solid var(--border,#e3e7ed);border-radius:10px}.ff-event-list summary .text-lg{font-size:calc(14px * var(--ff-text-scale, 1))}.ff-event-list details[open]{border-color:var(--accent,#6258df);background:var(--panel,#fff)}.ff-event-inspector pre{max-height:300px}.ff-event-list summary{gap:12px}.ff-event-list summary>div:first-child{min-width:0}.ff-event-list .break-all{overflow-wrap:anywhere}
[data-ui-panel]>div.panel:only-child{width:100%}
@media(min-width:1200px){.ff-event-list details[open]{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:20px;align-items:start}.ff-event-list details[open]>.ff-event-inspector{margin-top:0}.ff-event-list details[open]>summary{display:flex;flex-direction:column}}
@media(max-width:900px){.admin-content [style*="grid-template-columns: minmax(0, 700px)"],.admin-content [style*="grid-template-columns: 1fr 1fr"],.admin-content [style*="grid-template-columns: repeat(auto-fit, minmax(300px"]{grid-template-columns:minmax(0,1fr)!important}.admin-content .page-header>div{min-width:0;max-width:100%;flex-wrap:wrap}}
@media(max-width:640px){.admin-content .page-header>.flex,.portal-content .page-header>.flex{flex-wrap:wrap}.admin-content .page-title-group{min-width:0}.admin-content [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}.admin-content .grid-cols-2,.portal-content .grid-cols-2{grid-template-columns:minmax(0,1fr)}.admin-content .min-w-\[180px\]{min-width:0}.ff-table-scroll td .whitespace-nowrap{white-space:normal}.ff-task-links .btn{white-space:normal;text-align:start}.ff-event-list .log-entry{padding:12px}.ff-event-inspector{grid-template-columns:minmax(0,1fr)}.fw-wallets{grid-template-columns:minmax(0,1fr)}.ff-detail-main dl:not(.ff-definition){grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.admin-content form.filter-bar,.portal-content form.filter-bar{width:100%;max-width:100%;min-width:0;box-sizing:border-box;flex-wrap:wrap}.admin-content .filter-bar label,.portal-content .filter-bar label{display:flex;flex-wrap:wrap;min-width:0;max-width:100%;width:100%}.admin-content .filter-bar label select,.portal-content .filter-bar label select{width:100%;min-width:0;flex:1 1 100%}}
.ff-comparison-scroll{position:relative;max-width:100%;min-width:0;overflow:auto;overscroll-behavior-inline:contain}.ff-comparison-scroll:focus-visible{outline:2px solid var(--accent,#6258df);outline-offset:3px}.ff-comparison-grid{min-width:980px;padding-bottom:8px}
@media(max-width:640px){.admin-content .ff-comparison-grid>.grid-head,.admin-content .ff-comparison-grid .cascade-row{grid-template-columns:48px minmax(180px,1.5fr) 120px 120px 140px 110px 90px!important}}
@media(max-width:640px){
 .admin-content form.filter-bar,.portal-content form.filter-bar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px}
 .admin-content .filter-bar>*:not([type=hidden]),.portal-content .filter-bar>*:not([type=hidden]){flex:0 1 auto!important;min-width:0!important;max-width:100%;width:100%;height:auto}
 .admin-content .filter-bar>div,.admin-content .filter-bar>label,.portal-content .filter-bar>div,.portal-content .filter-bar>label{grid-column:1/-1}
 .admin-content .filter-bar .input,.portal-content .filter-bar .input{height:42px;min-height:42px;flex:0 1 auto!important;width:100%}
 .admin-content .filter-bar>div:has(input[type=text]),.portal-content .filter-bar>div:has(input[type=text]){height:42px}
}
@media(max-width:640px){body .ff-locale-switcher:not(.ff-locale-switcher--inline){position:static;width:fit-content;margin:18px auto;right:auto;bottom:auto;z-index:auto}}
/* Reading size is applied in head, before first paint. Column widths stay fixed; text wraps naturally. */
html[data-workspace]{font-size:calc(16px * var(--ff-text-scale, 1))}
.ff-text-preferences{position:relative;flex-shrink:0}.ff-text-preferences>summary{list-style:none;font:650 calc(14px * var(--ff-text-scale, 1))/1 system-ui;cursor:pointer}.ff-text-preferences>summary::-webkit-details-marker{display:none}.ff-text-popover{position:absolute;inset-inline-end:0;top:calc(100% + 10px);z-index:100;width:230px;max-width:calc(100vw - 28px);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 8px 24px rgb(15 23 42 / 12%);font-size:calc(13px * var(--ff-text-scale, 1))}.ff-text-popover strong{font-size:inherit}.ff-text-buttons{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.ff-text-buttons button{width:42px;height:40px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font:600 calc(14px * var(--ff-text-scale, 1))/1 system-ui;cursor:pointer}.ff-text-buttons button:disabled{opacity:.4;cursor:default}.ff-text-buttons output{min-width:4ch;text-align:center;font-variant-numeric:tabular-nums}.ff-text-reset{margin-top:14px;color:var(--muted);font-size:calc(12px * var(--ff-text-scale, 1));text-align:start;text-decoration:underline;cursor:pointer}.ff-text-preferences:focus-within{z-index:100}
.admin-workspace .sidebar-shell>nav{display:flex;flex-direction:column}.admin-workspace .sidebar-section{flex-shrink:0}.admin-workspace .sidebar-section--reference{margin-top:auto;padding-top:12px}
.admin-workspace .table .badge.mono{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.admin-workspace .nav-link,.portal-workspace .nav-link{transition:color .12s,background-color .12s}.admin-workspace .badge,.portal-workspace .badge{transition:color .12s,background-color .12s}.admin-workspace .animate-in,.portal-workspace .animate-in{animation:none}.admin-workspace,.portal-workspace{transition:none}
@media(max-width:640px){.portal-workspace .portal-topbar>div{height:auto;min-height:56px;flex-wrap:wrap;padding-block:8px}.portal-workspace .portal-topbar>div>div{min-width:0;max-width:100%}.portal-workspace .portal-topbar>div>div:last-child{margin-inline-start:auto;flex-wrap:wrap}.portal-workspace .portal-topbar nav{min-width:0;overflow-wrap:anywhere}}
