:root{--fl-ink:#141414;--fl-bg:#f4f3f0;--fl-card:#fff;--fl-green:#00796b;--fl-warn:#a16207;--fl-line:#d9d7d2}#root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--fl-ink)}.fl-app{min-height:70vh;background:var(--fl-bg)}.fl-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--fl-ink);z-index:10;padding:14px 18px;display:flex;align-items:center;justify-content:space-between}.fl-brand{display:flex;gap:14px;align-items:center}.fl-logo{width:42px;height:42px;background:#141414;display:grid;place-items:center}.fl-logo span{width:16px;height:16px;background:#f4f3f0;transform:rotate(45deg)}.fl-brand h1{font-size:23px;line-height:1;margin:0;color:var(--fl-green);font-weight:800}.fl-brand p{font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin:5px 0 0;color:#666}.fl-mobile-menu{display:none;background:#141414;color:#fff;border:0;padding:10px 12px;font-weight:700}.fl-shell{display:grid;grid-template-columns:230px 1fr;max-width:1260px;margin:0 auto}.fl-nav{border-right:1px solid var(--fl-ink);padding:18px 12px;background:#fff;min-height:calc(100vh - 72px);position:sticky;top:71px;align-self:start}.fl-nav button{display:block;width:100%;text-align:left;background:#fff;border:1px solid transparent;padding:12px 12px;margin-bottom:7px;font-weight:700;cursor:pointer}.fl-nav button.active,.fl-nav button:hover{border-color:#141414;background:#141414;color:#fff}.fl-main{padding:24px}.fl-hero,.fl-page-head{background:#fff;border:1px solid #141414;padding:22px;margin-bottom:18px}.fl-hero h2,.fl-page-head h2{margin:0 0 6px;font-size:30px;color:var(--fl-green)}.fl-hero p,.fl-page-head p,.fl-muted,.fl-hint{color:#666}.fl-grid{display:grid;gap:16px}.fl-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.fl-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.fl-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.fl-card,.fl-stat{background:#fff;border:1px solid #141414;padding:18px}.fl-card h2{margin:0 0 12px;font-size:20px;color:#141414}.fl-stat{text-align:left;cursor:pointer}.fl-stat strong{display:block;font-size:26px;color:#00796b;word-break:break-word}.fl-stat span{display:block;color:#666;font-size:13px;margin-top:4px}.fl-actions{display:flex;flex-wrap:wrap;gap:10px}.fl-actions button,.fl-form button,.fl-card button{background:#141414;color:#fff;border:1px solid #141414;padding:11px 13px;font-weight:800;cursor:pointer}.fl-form{display:grid;gap:10px}.fl-form input,.fl-form select,.fl-form textarea{border:1px solid #141414;padding:11px;font:inherit;width:100%;box-sizing:border-box}.fl-form textarea{min-height:70px}.fl-list{display:grid;gap:8px}.fl-list>div,.fl-small-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #eee;padding:8px 0}.fl-list em{font-style:normal;color:#777;font-size:12px;margin-left:6px}.fl-table-wrap{overflow:auto;background:#fff;border:1px solid #141414}.fl-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}.fl-table th,.fl-table td{padding:11px;border-bottom:1px solid #e7e5e0;text-align:left}.fl-table th{background:#f5f3ef;text-transform:uppercase;font-size:12px}.pos{color:#047857;font-weight:800}.neg{color:#be123c;font-weight:800}.fl-receipt img{max-height:180px;max-width:100%;object-fit:contain;border:1px solid #ddd;background:#fafafa;margin:10px 0}.fl-pill{display:inline-block;border:1px solid #d6b300;background:#fff8d6;color:#6b5500;padding:4px 8px;font-size:12px;text-transform:uppercase;margin:6px 0}.fl-mini{border:1px solid #ddd;padding:10px;background:#fafafa}.fl-mini b{display:block;color:#00796b;font-size:20px}.fl-mini span{font-size:12px;color:#666}.fl-mini.warn b{color:#a16207}.fl-mini.ok b{color:#047857}.fl-bullets{margin:0;padding-left:20px;line-height:1.9}.fl-result{font-weight:800;color:#00796b;margin-top:8px}@media(max-width:780px){.fl-header{padding:12px}.fl-brand h1{font-size:22px}.fl-mobile-menu{display:block}.fl-shell{display:block}.fl-nav{display:none;position:static;min-height:0;border-right:0;border-bottom:1px solid #141414}.fl-nav.open{display:block}.fl-main{padding:14px}.fl-grid-2,.fl-grid-3,.fl-grid-4{grid-template-columns:1fr}.fl-hero h2,.fl-page-head h2{font-size:25px}.fl-stat strong{font-size:24px}.fl-card,.fl-stat,.fl-hero,.fl-page-head{padding:16px}.fl-actions button,.fl-form button{width:100%;padding:14px}.fl-list>div{display:block}.fl-list strong{display:block;margin-top:3px}.fl-table{font-size:13px}}
.fl-stack{display:grid;gap:18px}.fl-inline-form{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;margin:12px 0}.fl-inline-form .fl-hint{grid-column:1/-1;margin:0;font-size:12px}.fl-card summary{font-weight:800;cursor:pointer;margin:8px 0 10px;color:var(--fl-green)}@media(max-width:780px){.fl-inline-form{grid-template-columns:1fr}.fl-inline-form input,.fl-inline-form select,.fl-inline-form button{width:100%}.familyledger-shell{overflow-x:hidden}.fl-table-wrap{max-width:100%;overflow-x:auto}}

.fl-member-admin-row{align-items:flex-start!important;gap:12px}.fl-member-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.fl-mini-form{display:grid;gap:6px;min-width:210px}.fl-mini-form input[type=password]{border:1px solid #141414;padding:7px;font-size:12px}.fl-mini-form button{background:#141414;color:#fff;border:1px solid #141414;padding:7px 10px;font-weight:700}.fl-mini-form label{font-size:11px;color:#555;display:flex;gap:6px;align-items:center}


/* v1.0.0 stable member ledger cards */
.fl-member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.fl-member-card{padding:0;overflow:hidden}.fl-member-card summary{list-style:none;margin:0;padding:20px;cursor:pointer;color:var(--fl-ink)}.fl-member-card summary::-webkit-details-marker{display:none}.fl-member-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.fl-member-top h2{font-size:26px;color:var(--fl-green);margin:0 0 4px}.fl-member-top p{margin:0;color:#666;font-size:13px}.fl-view-pill{border:1px solid #141414;background:#fff;padding:7px 10px;font-size:11px;font-weight:800;text-transform:uppercase;white-space:nowrap}.fl-member-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.fl-money-tile{border:1px solid #d9d7d2;background:#fff;padding:12px;min-height:70px}.fl-money-tile b{display:block;font-size:22px;line-height:1.15;color:#141414;word-break:break-word}.fl-money-tile span{display:block;color:#666;font-size:12px;margin-top:5px}.fl-money-tile.good{border-color:#86efac;background:#f0fdf4}.fl-money-tile.good b{color:#047857}.fl-money-tile.review{border-color:#fde68a;background:#fffbeb}.fl-money-tile.review b{color:#a16207}.fl-money-tile.charity{border-color:#fbcfe8;background:#fdf2f8}.fl-money-tile.charity b{color:#be185d}.fl-money-tile.owe{border-color:#fecaca;background:#fff1f2}.fl-money-tile.owe b{color:#be123c}.fl-member-open{border-top:1px solid #141414;background:#fff;padding:18px}.fl-member-actions-row{margin-bottom:12px}.fl-member-welcome h2{font-size:32px}.fl-member-wallet{margin-bottom:18px}.fl-ledger-tools{border:1px solid #d9d7d2;padding:12px;margin:12px 0;background:#f9f8f5}.fl-ledger-tools summary{padding:0;margin:0;color:var(--fl-green)}
@media(max-width:900px){.fl-member-grid{grid-template-columns:1fr}.fl-member-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.fl-member-metrics{grid-template-columns:1fr}.fl-member-top{display:block}.fl-view-pill{display:inline-block;margin-top:10px}.fl-money-tile b{font-size:24px}.fl-member-card summary{padding:16px}}
/* v1.0.4 Relationship card focus: one net relationship total first, supporting info second. */
.fl-net-focus{border:1px solid #86efac;background:#f0fdf4;padding:16px;margin-bottom:12px}
.fl-net-focus span{display:block;color:#555;font-size:13px;font-weight:700;margin-bottom:6px}
.fl-net-focus strong{display:block;color:#047857;font-size:34px;line-height:1.05;letter-spacing:-.02em;word-break:break-word}
.fl-member-metrics-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}
.fl-member-metrics-secondary .fl-money-tile b{font-size:18px;line-height:1.2}
@media(max-width:900px){.fl-member-metrics-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.fl-net-focus strong{font-size:32px}.fl-member-metrics-secondary{grid-template-columns:1fr}}

/* v1.1.0 Relationship Ledger: ledger detail is the source-of-truth view; cards remain calculated snapshots. */
.fl-relationship-ledger h2{margin:0;color:var(--fl-green)}
.fl-ledger-header{border:1px solid #141414;background:#fff;padding:18px;margin-bottom:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.fl-ledger-header p{margin:6px 0 4px;color:#555;font-weight:700}.fl-ledger-header strong{display:block;color:#047857;font-size:38px;line-height:1.05}.fl-ledger-header span{display:block;color:#666;font-size:12px;margin-top:4px}.fl-back-hint{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:800;margin-bottom:4px}
.fl-ledger-header-actions{display:flex;flex-wrap:wrap;gap:8px}.fl-ledger-header-actions button{background:#fff!important;color:#141414!important;border:1px solid #141414!important;padding:9px 11px!important;font-size:11px!important;text-transform:uppercase!important}
.fl-relationship-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.fl-relationship-breakdown>div{border:1px solid #d9d7d2;background:#f9f8f5;padding:12px}.fl-relationship-breakdown span{display:block;font-size:12px;color:#555;font-weight:800}.fl-relationship-breakdown strong{display:block;font-size:24px;color:#141414;margin:4px 0}.fl-relationship-breakdown em{display:block;font-style:normal;color:#777;font-size:11px;line-height:1.35}
.fl-ledger-filters{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 12px}.fl-ledger-filters span{border:1px solid #d9d7d2;background:#fff;padding:6px 8px;font-size:11px;font-weight:800;text-transform:uppercase;color:#555}
@media(max-width:780px){.fl-ledger-header{display:block}.fl-ledger-header-actions{margin-top:12px}.fl-ledger-header-actions button{width:auto!important}.fl-relationship-breakdown{grid-template-columns:1fr}.fl-ledger-header strong{font-size:34px}}

/* v1.5.0 Approval Center & Transaction Engine Foundation */
.fl-approval-list{display:grid;gap:12px}.fl-approval-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:14px;border:1px solid #d9d7d2;background:#f9f8f5;padding:14px}.fl-approval-row strong{display:block;color:#00796b;font-size:18px}.fl-approval-row span{display:block;color:#555;font-size:12px;font-weight:700;margin:3px 0}.fl-approval-row p{margin:6px 0;color:#333}.fl-approval-row small{display:block;color:#666;font-size:11px}.fl-approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-content:start}.fl-approval-actions input{border:1px solid #141414;padding:9px;font:inherit;width:100%;box-sizing:border-box;grid-column:1/-1}.fl-approval-actions button{background:#141414;color:#fff;border:1px solid #141414;padding:9px 10px;font-weight:800;cursor:pointer}.fl-approval-actions button[value="reject"]{background:#fff1f2;color:#be123c;border-color:#be123c}.fl-approval-actions button[value="info"]{background:#fffbeb;color:#a16207;border-color:#a16207}@media(max-width:780px){.fl-approval-row{grid-template-columns:1fr}.fl-approval-actions{grid-template-columns:1fr}.fl-approval-actions button{width:100%}}


/* v1.6.2 Performance + Loading UX: cached tab switches and immediate feedback. */
#root.fl-loading .fl-main{position:relative;min-height:220px}
#root.fl-loading .fl-main:before{content:"Opening…";position:sticky;top:84px;z-index:20;display:inline-flex;align-items:center;gap:10px;margin:0 0 12px 0;padding:10px 14px;border:1px solid #141414;background:#fff;color:#00796b;font-weight:900;box-shadow:0 2px 0 rgba(0,0,0,.08)}
#root.fl-loading .fl-main:after{content:"";position:absolute;inset:0;background:rgba(244,243,240,.46);pointer-events:none}
.fl-busy{opacity:.7;pointer-events:none}
@media(max-width:780px){#root.fl-loading .fl-main:before{top:68px;width:calc(100% - 30px);box-sizing:border-box}}

/* v1.6.2: clearer tap feedback without blocking data-safe actions. */
.fl-nav button,.fl-stat,.fl-actions button{touch-action:manipulation}
#root.fl-loading .fl-main:before{content:"Opening…"}

/* v1.7.0 Relationship Ledger */
.fl-click-row{cursor:pointer}
.fl-click-row:hover{background:#f9f8f5}
button[disabled],.fl-card button[disabled],.fl-form button[disabled]{opacity:.55;cursor:not-allowed;background:#777!important;border-color:#777!important;color:#fff!important}
.fl-transaction-detail .fl-card{border-color:#d9d7d2}
.fl-page-head button{background:#fff;color:#141414;border:1px solid #141414;padding:9px 11px;font-weight:800;margin-bottom:10px;cursor:pointer}


/* v1.8.0 Household Financial Inbox */
.fl-household-banner{display:inline-block;margin:4px 0 6px;padding:6px 10px;border:1px solid #d9d7d2;background:#f9f8f5;color:#141414!important;font-weight:800}
.fl-inbox-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.fl-inbox-card{background:#fff;border:1px solid #141414;padding:16px;text-align:left;cursor:pointer;box-shadow:2px 2px 0 rgba(0,0,0,.08)}
.fl-inbox-card span{display:block;font-size:13px;font-weight:900;color:#555;margin-bottom:8px}.fl-inbox-card strong{display:block;font-size:26px;color:#00796b;word-break:break-word}.fl-inbox-card em{display:block;font-style:normal;color:#666;font-size:12px;margin-top:8px;line-height:1.35}
.fl-inbox-card.urgent{border-left:5px solid #be123c}.fl-inbox-card.warning{border-left:5px solid #a16207}.fl-inbox-card.info{border-left:5px solid #2563eb}.fl-inbox-card.ok{border-left:5px solid #047857}.fl-inbox-list small{color:#666}.fl-inbox-empty{padding:12px;border:1px dashed #d9d7d2;background:#f9f8f5}.fl-inbox-empty strong{color:#047857}
@media(max-width:900px){.fl-inbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.fl-inbox-grid{grid-template-columns:1fr}.fl-inbox-card{padding:16px}}

/* v1.8.1 Full Base Diagnostic Drilldown */
.fl-diagnostic-list{gap:10px}
.fl-diagnostic-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;text-align:left;border:1px solid #e2e0da;background:#fff;color:#141414;padding:10px;cursor:pointer;font:inherit}
.fl-diagnostic-row:hover{border-color:#141414;background:#f9f8f5}
.fl-diagnostic-row strong{font-size:12px;text-transform:uppercase;align-self:start}.fl-diagnostic-row em{grid-column:1/-1;font-style:normal;color:#00796b;font-weight:800;font-size:11px;text-transform:uppercase}.fl-diagnostic-row.pass strong{color:#047857}.fl-diagnostic-row.warn strong{color:#a16207}.fl-diagnostic-row.fail strong{color:#be123c}
.fl-modal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:32px 14px;overflow:auto}.fl-modal{background:#fff;border:2px solid #141414;max-width:860px;width:100%;padding:18px;box-shadow:6px 6px 0 rgba(0,0,0,.25)}.fl-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #e7e5e0;margin-bottom:12px}.fl-modal-head h2{margin:0 0 12px;color:#00796b}.fl-modal-head button{background:#141414;color:#fff;border:0;font-size:22px;line-height:1;padding:6px 10px;cursor:pointer}.fl-diagnostic-pre{white-space:pre-wrap;max-height:420px;overflow:auto;background:#f6f6f4;border:1px solid #d9d7d2;padding:12px;font-size:12px;line-height:1.45}
@media(max-width:780px){.fl-modal-backdrop{padding:12px 8px}.fl-modal{padding:14px}.fl-diagnostic-pre{max-height:360px}}

/* v1.9.8.2 Developer Center UX Foundation — progressive disclosure, UI-only */
.fl-command-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.fl-command-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;text-align:left;background:#fff;border:1px solid #141414;padding:18px;cursor:pointer;color:#141414;box-shadow:2px 2px 0 rgba(0,0,0,.06);min-height:118px}
.fl-command-card:hover{background:#f9f8f5;box-shadow:4px 4px 0 rgba(0,0,0,.10)}
.fl-command-icon{font-size:30px;line-height:1}.fl-command-card strong{display:block;color:#00796b;font-size:20px;margin-bottom:4px}.fl-command-card em{display:block;font-style:normal;color:#333;font-size:13px;line-height:1.35}.fl-command-card small{display:block;color:#666;margin-top:7px;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.fl-command-card b{font-size:12px;text-transform:uppercase;color:#141414;white-space:nowrap}
.fl-disclosure{background:#fff;border:1px solid #141414;margin-bottom:12px}.fl-disclosure>summary{list-style:none;margin:0!important;padding:16px 18px!important;cursor:pointer;color:#00796b!important;font-weight:900!important;display:flex;justify-content:space-between;gap:12px;align-items:center}.fl-disclosure>summary::-webkit-details-marker{display:none}.fl-disclosure>summary:after{content:'Open';font-size:11px;text-transform:uppercase;color:#141414;border:1px solid #141414;padding:4px 7px;background:#fff}.fl-disclosure[open]>summary{border-bottom:1px solid #e7e5e0}.fl-disclosure[open]>summary:after{content:'Close'}
.fl-disclosure-body{padding:16px 18px}.fl-sticky-subhead{position:sticky;top:72px;z-index:5}.fl-dev-summary{margin-bottom:16px}
@media(max-width:900px){.fl-command-grid{grid-template-columns:1fr}.fl-command-card{grid-template-columns:auto minmax(0,1fr);min-height:0}.fl-command-card b{grid-column:1/-1}.fl-sticky-subhead{position:static}}
@media(max-width:520px){.fl-command-card{padding:16px}.fl-command-icon{font-size:26px}.fl-command-card strong{font-size:18px}.fl-disclosure>summary{padding:15px!important}.fl-disclosure-body{padding:14px}}

/* FamilyLedger 1.9.8.8r workflow UX */
.fl-sortbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 12px 0;padding:10px;background:#f7f7f4;border:1px solid #d6d6cf;font-size:12px}
.fl-sortbar select,.fl-sortbar input{border:1px solid #141414;padding:7px;background:#fff;min-width:180px}
.fl-request-list{display:grid;gap:10px}
.fl-request-card,.fl-reviewed-row{border:1px solid #d6d6cf;background:#fff;margin:8px 0;padding:0}
.fl-request-card summary,.fl-reviewed-row summary{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;cursor:pointer;padding:10px;font-size:13px}
.fl-request-card summary em,.fl-reviewed-row summary em{font-style:normal;border:1px solid #d6d6cf;padding:3px 6px;background:#f7f7f4;font-size:11px;text-transform:uppercase}
.fl-request-body{border-top:1px solid #e4e4df;padding:10px;font-size:13px}
.fl-timeline{font-size:11px;color:#555;margin:8px 0;padding:8px;background:#f7f7f4;border:1px solid #e1e1da}
.fl-inline-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:8px}
.fl-inline-edit textarea{grid-column:1/-1;min-height:65px}
.fl-danger{border-color:#c03!important;color:#c03!important;background:#fff5f6!important}
