/* 2026 Finance workspace — scoped, responsive and fully visible */
#tab-finance.finance-workspace {
  max-width: 1220px;
  width: 100%;
  padding: 1.4rem clamp(.8rem, 2.2vw, 2rem) 3.5rem;
  box-sizing: border-box;
}
#tab-finance, #tab-finance * { box-sizing: border-box; }
#tab-finance .fin-heading {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem;
}
#tab-finance .fin-eyebrow {
  text-transform: uppercase; letter-spacing: .15em; font-size: .68rem;
  font-weight: 800; color: #a15220; margin-bottom: .25rem;
}
#tab-finance .fin-heading h1 {
  font-family: 'DM Sans', sans-serif; color: #3b2418;
  letter-spacing: -.045em; font-size: clamp(1.5rem, 2.55vw, 2.25rem);
  margin: 0; line-height: 1.1;
}
#tab-finance .fin-heading p {
  max-width: 620px; margin: .4rem 0 0; color: #766459;
  font-size: .87rem; line-height: 1.55;
}
#tab-finance .fin-pill {
  display: inline-flex; align-items: center; gap: .35rem;
  border: 1px solid #d6e6d8; border-radius: 30px;
  padding: .48rem .83rem; background: #f2faf4;
  color: #215b37; font-weight: 700; font-size: .77rem;
  white-space: nowrap;
}
#tab-finance .fin-jumpnav {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: .5rem; margin: 0 0 1.2rem;
}
#tab-finance .fin-jumpnav a {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .8rem; font-weight: 700; text-decoration: none;
  padding: .55rem .83rem; border-radius: 9px;
  border: 1px solid #eaded1; background: #fff;
  color: #725443; transition: background .18s, border-color .18s;
}
#tab-finance .fin-jumpnav a:hover,
#tab-finance .fin-jumpnav a:focus-visible {
  color: #984711; background: #fff8f0; border-color: #d2b69e;
}
#tab-finance .fin-stats {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem; margin: 0 0 .65rem;
}
#tab-finance .fin-stat {
  min-width: 0; background: #fff; border: 1px solid #eadfd4;
  border-radius: 13px; padding: .88rem 1.05rem;
  box-shadow: 0 3px 16px rgba(62,33,12,.035);
}
#tab-finance .fin-stat--positive { background: #f5fbf7; border-color: #d5e9d9; }
#tab-finance .fin-stat--highlight {
  background: #fffaef; border-color: #e9ddbf;
}
#tab-finance .fin-stat-label {
  color: #735f53; font-weight: 700; font-size: .74rem; line-height: 1.4;
}
#tab-finance .fin-stat-value {
  color: #352316; display: block; margin: .42rem 0 .28rem;
  font-size: clamp(1.2rem, 2vw, 1.85rem); font-weight: 800;
  letter-spacing: -.045em; line-height: 1.2;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
#tab-finance .fin-stat--positive .fin-stat-value { color: #215f3e; }
#tab-finance .fin-stat-foot {
  color: #8a7666; font-size: .72rem; line-height: 1.45;
}
#tab-finance .fin-stat-progress {
  height: 5px; background: #eee3d8;
  border-radius: 10px; overflow: hidden; margin-top: .68rem;
}
#tab-finance .fin-stat-progress > span {
  display: block; background: #d47c36; height: 100%;
  width: 0; border-radius: inherit; transition: width .3s ease;
}
#tab-finance .fin-summary-foot {
  display: flex; flex-wrap: wrap; justify-content: space-between;
  gap: .4rem 1rem; padding: .5rem .2rem 1.15rem;
  color: #725f51; font-size: .73rem; line-height: 1.5;
}
#tab-finance .fin-summary-foot strong { color: #45714e; }
#tab-finance .fin-panel {
  min-width: 0; background: #fff; border-radius: 17px;
  border: 1px solid #e6dacc; padding: clamp(1rem, 2.2vw, 1.55rem);
  margin-bottom: 1.2rem; box-shadow: 0 4px 20px rgba(62,33,12,.045);
  scroll-margin-top: 1rem;
}
#tab-finance .fin-panel--entry { border-top: 4px solid #3d855a; }
#tab-finance .fin-panel--records { border-top: 4px solid #ce8955; }
#tab-finance .fin-panel-head {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between;
  gap: .8rem; margin-bottom: 1.25rem;
}
#tab-finance .fin-panel-head h2 {
  margin: 0; color: #3b271b; font-size: 1.16rem;
  font-weight: 800; letter-spacing: -.02em;
}
#tab-finance .fin-panel-head p {
  margin: .4rem 0 0; font-size: .79rem; color: #806c5d;
  max-width: 710px; line-height: 1.55;
}
#tab-finance .fin-step {
  border: 1px solid #d4e8db; color: #267047; background: #f2faf4;
  border-radius: 30px; padding: .35rem .65rem; font-weight: 800;
  font-size: .65rem; letter-spacing: .07em; white-space: nowrap;
}
#tab-finance .fin-fields {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .95rem; margin-bottom: 1rem; align-items: end;
}
#tab-finance .fin-field--span2 { grid-column: span 2; }
#tab-finance .fin-field--full { grid-column: 1 / -1; }
#tab-finance .fin-fields .ff { min-width: 0; }
#tab-finance .fin-fields .ff label,
#tab-finance .fin-edit-grid .ff label {
  color: #645044; font-size: .73rem; letter-spacing: 0;
  text-transform: none; font-weight: 800; margin-bottom: .43rem;
}
#tab-finance .fin-fields .ff input,
#tab-finance .fin-fields .ff select,
#tab-finance .fin-edit-grid input,
#tab-finance .fin-edit-grid select,
#tab-finance .fin-search input,
#tab-finance .fin-select select {
  width: 100%; min-width: 0; min-height: 43px;
  font: 500 .88rem 'DM Sans', sans-serif; background: #fffdf9;
  border: 1px solid #dbcbbd; border-radius: 9px;
  color: #3c2a20; padding: .6rem .78rem;
}
#tab-finance .fin-fields .ff input:focus,
#tab-finance .fin-fields .ff select:focus,
#tab-finance .fin-search input:focus,
#tab-finance .fin-select select:focus { outline: 2px solid #d4a575; outline-offset: 1px; }
#tab-finance .fin-info {
  display: flex; align-items: flex-start; gap: .6rem;
  background: #f4f8f5; border: 1px solid #deebdf; color: #43644c;
  border-radius: 10px; padding: .75rem .85rem; font-size: .75rem;
  line-height: 1.55; margin: .65rem 0 1rem;
}
#tab-finance .fin-extra {
  border: 1px solid #eee1d2; border-radius: 10px;
  margin: .5rem 0 1rem; background: #fffcf9;
}
#tab-finance .fin-extra summary {
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer; font-size: .8rem; color: #795943; font-weight: 700;
  padding: .74rem .85rem; list-style: none;
}
#tab-finance .fin-extra summary::-webkit-details-marker { display: none; }
#tab-finance .fin-extra summary::after { content: '＋'; color: #a77748; }
#tab-finance .fin-extra[open] summary::after { content: '−'; }
#tab-finance .fin-extra-fields { padding: 0 .9rem .8rem; display: grid; gap: .8rem; }
#tab-finance .fin-submitbar {
  display: flex; gap: .9rem; align-items: center; flex-wrap: wrap;
  padding-top: .9rem; border-top: 1px solid #f0e6dc;
}
#tab-finance .fin-submitbar .btn-primary {
  background: #31764b; box-shadow: none; min-height: 44px;
  padding: .69rem 1.2rem; border-radius: 9px;
}
#tab-finance .fin-submitnote { font-size: .74rem; color: #6a776c; }
#tab-finance .fin-toolbar {
  display: flex; flex-wrap: wrap; gap: .65rem; align-items: flex-end;
  margin-bottom: 1.1rem;
}
#tab-finance .fin-search { flex: 1 1 250px; }
#tab-finance .fin-select { flex: 0 1 190px; }
#tab-finance .fin-toolbar label {
  display: block; font-size: .68rem; font-weight: 800;
  color: #766154; margin-bottom: .38rem;
}
#tab-finance .fin-ledger-actions {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: .5rem; margin-left: auto;
}
#tab-finance .fin-ledger-actions .btn-secondary {
  white-space: nowrap; padding: .6rem .8rem;
  color: #7f4d24; background: #fffaf4;
  border: 1px solid #e3cbb3; font-size: .75rem;
}
#tab-finance .fin-ledger-meta {
  display: flex; align-items: center; gap: .6rem; justify-content: space-between;
  flex-wrap: wrap; padding: .6rem 0 .85rem;
  color: #79665a; font-size: .76rem;
}
#tab-finance #receiptList {
  display: grid !important; gap: .9rem; max-height: none !important;
  overflow: visible !important; min-width: 0; width: 100%;
}
#tab-finance .fin-category {
  min-width: 0; border: 1px solid #e8ddd0; border-radius: 12px;
  background: #fff; overflow: visible;
}
#tab-finance .fin-category > summary {
  display: flex; flex-wrap: wrap; gap: .65rem;
  justify-content: space-between; align-items: center;
  min-width: 0; cursor: pointer; padding: .88rem 1rem;
  border-radius: 11px; background: #fff8f0;
  list-style: none;
}
#tab-finance .fin-category > summary::-webkit-details-marker { display: none; }
#tab-finance .fin-category > summary::after { content: '⌄'; color: #9b7054; }
#tab-finance .fin-category:not([open]) > summary::after { transform: rotate(-90deg); }
#tab-finance .fin-category-title {
  font-size: .85rem; font-weight: 800; color: #4e3424;
  display: flex; align-items: center; gap: .5rem;
}
#tab-finance .fin-category-count {
  border-radius: 20px; padding: .13rem .48rem; background: #f0e2d3;
  font-size: .68rem; font-weight: 800; color: #765540;
}
#tab-finance .fin-category-total {
  font-size: .84rem; font-weight: 800; color: #94521e;
  font-variant-numeric: tabular-nums; margin-left: auto;
}
#tab-finance .fin-category-body { padding: .75rem; display: grid; gap: .65rem; }
#tab-finance .fin-payment {
  display: grid; grid-template-columns: minmax(0,1fr) auto;
  gap: .8rem; padding: .9rem 1rem; border: 1px solid #efe6dc;
  border-radius: 10px; background: #fff; min-width: 0;
}
#tab-finance .fin-payment--missing {
  border-color: #eccb97; background: #fffdf8;
}
#tab-finance .fin-payment-main { min-width: 0; overflow-wrap: anywhere; }
#tab-finance .fin-payment-title {
  font-size: .92rem; color: #3f2c21; font-weight: 800;
  line-height: 1.4; overflow-wrap: anywhere; margin: 0 0 .27rem;
}
#tab-finance .fin-payment-title--missing { color: #9d571b; }
#tab-finance .fin-payment-byline {
  color: #7d6d5f; font-size: .76rem; line-height: 1.55; overflow-wrap: anywhere;
}
#tab-finance .fin-payment-tags {
  display: flex; flex-wrap: wrap; gap: .38rem;
  align-items: center; margin-top: .55rem;
}
#tab-finance .fin-tag {
  border-radius: 20px; border: 1px solid #e7ddcf; background: #fcf9f5;
  font-size: .68rem; font-weight: 800; color: #6f5b4e;
  padding: .24rem .53rem; line-height: 1.3;
}
#tab-finance .fin-tag--advance { background: #fff4e3; color: #986318; border-color: #ead39e; }
#tab-finance .fin-tag--paid { background: #eff9f0; color: #2d7145; border-color: #d3e8d8; }
#tab-finance .fin-tag--missing { background: #fff1e2; color: #a1561c; border-color: #e9c49a; }
#tab-finance .fin-payment-money {
  font-size: 1.15rem; font-weight: 800; color: #2d6842;
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
#tab-finance .fin-payment-side {
  display: flex; flex-direction: column; align-items: flex-end;
  gap: .6rem; min-width: 120px;
}
#tab-finance .fin-payment-actions { display: flex; gap: .4rem; flex-wrap: wrap; }
#tab-finance .fin-payment-actions button {
  border: 1px solid #dcc6af; background: #fff9f2; color: #80522a;
  border-radius: 8px; font-size: .75rem; font-weight: 700;
  padding: .45rem .65rem; cursor: pointer;
}
#tab-finance .fin-payment-actions button.fin-setup-action,
#tab-finance .fin-work-action {
  border: 1px solid #275f43; background: #275f43; color: #fff;
  border-radius: 8px; font-size: .75rem; font-weight: 800;
  padding: .48rem .75rem; cursor: pointer;
}
#tab-finance .fin-work-action { white-space: nowrap; }
#tab-finance .fin-payment-actions button.fin-danger {
  color: #a13a31; border-color: #edddd9; background: #fff;
}
#tab-finance .fin-payment-note {
  margin-top: .48rem; color: #816f63; font-size: .75rem;
  line-height: 1.55; overflow-wrap: anywhere;
}
#tab-finance .fin-payment-document {
  display: inline-block; font-size: .74rem; margin-top: .45rem;
  color: #98602a; text-decoration: underline; text-underline-offset: 3px;
}
#tab-finance .fin-work-order {
  border: 1px solid #d7e6da; border-radius: 11px;
  overflow: hidden; background: #fcfefc;
}
#tab-finance .fin-work-head {
  padding: .85rem 1rem; display: flex; gap: .8rem;
  flex-wrap: wrap; justify-content: space-between; align-items: center;
  border-bottom: 1px solid #e0eee2;
}
#tab-finance .fin-work-ref { font-size: .81rem; font-weight: 800; color: #356047; overflow-wrap: anywhere; }
#tab-finance .fin-work-numbers { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem; font-size: .75rem; color: #51765a; }
#tab-finance .fin-work-numbers strong { color: #245b38; font-size: .88rem; }
#tab-finance .fin-work-progress { height: 6px; border-radius: 5px; overflow: hidden; background: #e6f1e8; margin: 0 1rem .75rem; }
#tab-finance .fin-work-progress span { display: block; background: #56a96d; height: 100%; }
#tab-finance .fin-work-items { padding: .65rem; display: grid; gap: .55rem; }
#tab-finance .fin-empty {
  text-align: center; padding: 2rem 1rem; border: 1px dashed #d9c5b5;
  border-radius: 12px; color: #786458; font-size: .84rem;
}
#tab-finance #rcptSync {
  display: block; margin: .85rem 0 0; font-size: .76rem !important;
  line-height: 1.55; overflow-wrap: anywhere;
}
#tab-finance .fin-settings {
  padding: 1rem 1.3rem; scroll-margin-top: 1rem;
  box-shadow: 0 2px 14px rgba(62,33,12,.035);
}
#tab-finance .fin-settings > summary.ac-title {
  font-size: .95rem; margin: 0; padding: .23rem 0;
}
#tab-finance .fin-settings[open] > summary.ac-title { margin-bottom: 1.2rem; }
#tab-finance .fin-settings .fg3,
#tab-finance .fin-edit-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
#tab-finance .fin-settings .ff { min-width: 0; }
#tab-finance .fin-settings .ff input { min-width: 0; max-width: 100%; }
#tab-finance #expenseEditPanel {
  max-width: 100%; border: 1px solid #dfb991; background: #fffcf7;
  border-radius: 11px; padding: 1.3rem; margin-top: 1.1rem;
}
#tab-finance #expenseEditPanel[hidden] { display: none !important; }
#tab-finance .fin-edit-grid {
  display: grid; gap: .75rem; margin-bottom: .9rem;
}
#tab-finance .fin-edit-full { grid-column: 1 / -1; }
#tab-finance .fin-safety-note {
  padding: .7rem .85rem; color: #765c45; background: #fff5e7;
  border-radius: 8px; font-size: .75rem; line-height: 1.55;
}
@media (max-width: 980px) {
  #tab-finance .fin-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #tab-finance .fin-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #tab-finance .fin-settings .fg3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 610px) {
  #tab-finance.finance-workspace { padding: 1rem .72rem 2.5rem; }
  #tab-finance .fin-stats { gap: .55rem; }
  #tab-finance .fin-stat { padding: .8rem; border-radius: 11px; }
  #tab-finance .fin-stat-label { font-size: .68rem; }
  #tab-finance .fin-stat-value { font-size: 1.12rem; }
  #tab-finance .fin-stat-foot { font-size: .64rem; }
  #tab-finance .fin-panel { padding: .9rem; border-radius: 12px; }
  #tab-finance .fin-fields { grid-template-columns: 1fr; gap: .7rem; }
  #tab-finance .fin-fields .fin-field--span2,
  #tab-finance .fin-fields .fin-field--full { grid-column: auto; }
  #tab-finance .fin-toolbar { align-items: stretch; }
  #tab-finance .fin-search,
  #tab-finance .fin-select { flex: 1 1 100%; }
  #tab-finance .fin-ledger-actions { margin-left: 0; }
  #tab-finance .fin-payment { grid-template-columns: 1fr; padding: .83rem; }
  #tab-finance .fin-payment-side {
    flex-direction: row; justify-content: space-between;
    align-items: center; flex-wrap: wrap; width: 100%;
  }
  #tab-finance .fin-category-body { padding: .45rem; }
  #tab-finance .fin-settings .fg,
  #tab-finance .fin-settings .fg3,
  #tab-finance .fin-edit-grid { grid-template-columns: 1fr; }
  #tab-finance .fin-edit-full { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  #tab-finance *, #tab-finance *::before, #tab-finance *::after {
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Tracked vendor/work commitments: separate from actual paid expenses. */
#tab-finance .fin-pending-link {
  display: inline-block; color: #965219; font-size: .71rem;
  font-weight: 750; margin-top: .32rem; text-underline-offset: 3px;
}
#tab-finance .fin-panel--commitments { border-top: 4px solid #ce9455; }
#tab-finance .fin-commitment-summary {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
  gap: .65rem; margin-bottom: 1.05rem;
}
#tab-finance .fin-commitment-metric {
  padding: .85rem 1rem; border: 1px solid #e9dfd2;
  border-radius: 11px; background: #faf8f5; min-width: 0;
}
#tab-finance .fin-commitment-metric span {
  display:block; color: #776354; font-size: .72rem;
  line-height: 1.4; font-weight: 700;
}
#tab-finance .fin-commitment-metric strong {
  display: block; margin-top: .25rem; color: #412f25;
  font-size: clamp(1rem, 2vw, 1.45rem); letter-spacing: -.03em;
  font-variant-numeric: tabular-nums; overflow-wrap: anywhere;
}
#tab-finance .fin-commitment-metric--due {
  border-color: #efd3a9; background: #fff9ed;
}
#tab-finance .fin-commitment-metric--due strong { color: #985a18; }
#tab-finance .fin-commitment-controls {
  display: flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:.6rem; padding: .7rem 0;
  border-bottom: 1px solid #ede5db; margin-bottom:.7rem;
}
#tab-finance .fin-commitment-controls strong {
  display:block; font-size:.8rem; color:#503a2c; line-height:1.5;
}
#tab-finance .fin-commitment-controls small {
  display:block; color:#89756a; font-size:.71rem; margin-top:.16rem;
}
#tab-finance .fin-commitment-toggle {
  display:inline-flex; align-items:center; gap:.48rem;
  cursor:pointer; color:#67564a; font-size:.76rem; font-weight:700;
  white-space:nowrap;
}
#tab-finance .fin-commitment-toggle input { accent-color:#ab681e; width:16px; height:16px; }
#tab-finance .fin-commitment-categories { display:grid; gap:.68rem; }
#tab-finance .fin-commitment-category {
  border: 1px solid #eadcc9; border-radius: 11px;
  overflow: hidden; background:#fff;
}
#tab-finance .fin-commitment-category > summary {
  display:flex; flex-wrap:wrap; align-items:center; gap:.6rem;
  padding:.83rem 1rem; cursor:pointer; background:#fff8ef;
  list-style:none;
}
#tab-finance .fin-commitment-category > summary::-webkit-details-marker{display:none;}
#tab-finance .fin-commitment-cat-title {
  font-size:.83rem; font-weight:800; color:#523822;
  flex:1 1 180px; min-width:0; overflow-wrap:anywhere;
}
#tab-finance .fin-commitment-cat-meta {
  display:flex; flex-wrap:wrap; align-items:center; gap:1rem;
}
#tab-finance .fin-commitment-cat-meta span {
  display:grid; font-size:.66rem; color:#786658; line-height:1.5;
}
#tab-finance .fin-commitment-cat-meta strong {
  font-size:.82rem; color:#473021; font-variant-numeric:tabular-nums;
}
#tab-finance .fin-commitment-cat-meta .fin-amount-due {color:#9d591c;}
#tab-finance .fin-commitment-cat-meta .fin-amount-unknown {color:#956b44;}
#tab-finance .fin-commitment-items { display:grid; gap:.55rem; padding:.7rem; }
#tab-finance .fin-commitment-topic {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  align-items:center; gap:.75rem; padding:.85rem .95rem;
  border:1px solid #ece5db; border-radius:9px; min-width:0;
}
#tab-finance .fin-commitment-topic-title {
  font-size:.83rem; font-weight:800; color:#3b2c23;
  overflow-wrap:anywhere; line-height:1.45; margin:0;
}
#tab-finance .fin-commitment-topic-meta {
  color:#796b60; font-size:.7rem; line-height:1.5; overflow-wrap:anywhere;
  margin-top:.22rem;
}
#tab-finance .fin-commitment-topic-numbers {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.5rem; min-width:0;
}
#tab-finance .fin-commitment-topic-numbers > span {
  display:grid; gap:.18rem; font-size:.66rem;
  color:#78665a; min-width:0;
}
#tab-finance .fin-commitment-topic-numbers strong {
  font-size:.81rem; color:#483b2f; overflow-wrap:anywhere;
  font-variant-numeric:tabular-nums;
}
#tab-finance .fin-commitment-topic-numbers strong.fin-amount-due {color:#965a1d;}
#tab-finance .fin-commitment-topic .fin-topic-cta {
  border:1px solid #ccdfcf; background:#f2faf3; color:#2d744a;
  padding:.46rem .66rem; font-size:.72rem; font-weight:750;
  border-radius:8px; cursor:pointer; line-height:1.4;
  white-space:nowrap;
}
#tab-finance .fin-commitment-topic .fin-topic-cta:hover {background:#e4f4e8;}
#tab-finance .fin-commitment-topic .fin-topic-settled {
  font-size:.72rem; color:#36734a; font-weight:800; white-space:nowrap;
}
#tab-finance .fin-commitment-warning {
  font-size:.73rem; line-height:1.55; margin:.85rem 0 .15rem;
  color:#956018; background:#fffbf2;
  border:1px solid #f0ddb8; border-radius:8px;
  padding:.62rem .8rem;
}
#tab-finance .fin-commitment-warning:empty {display:none;}
#tab-finance .fin-commitment-footnote {
  color:#806e61; font-size:.73rem; line-height:1.55; margin:.8rem 0 0;
}
#tab-finance .fin-commitment-preview {
  border:1px solid #d4e4d8; border-radius:10px;
  background:#f7fbf8; margin:.2rem 0 1rem; padding:.82rem .95rem;
}
#tab-finance .fin-preview-head {
  font-size:.78rem; font-weight:800; color:#346747; margin-bottom:.56rem;
}
#tab-finance .fin-preview-values {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.45rem .7rem;
}
#tab-finance .fin-preview-values > div {display:grid; gap:.22rem;min-width:0;}
#tab-finance .fin-preview-values span {
  font-size:.68rem; color:#6d776f; line-height:1.4;
}
#tab-finance .fin-preview-values strong {
  font-size:.93rem; color:#385541; overflow-wrap:anywhere;
  font-variant-numeric:tabular-nums;
}
#tab-finance .fin-preview-values #fin-preview-due {color:#99621b;}
#tab-finance #fin-preview-note {
  font-size:.71rem; line-height:1.55; color:#687c6e; margin:.55rem 0 0;
}
@media(max-width: 990px) {
  #tab-finance .fin-commitment-topic {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  #tab-finance .fin-commitment-topic .fin-topic-cta,
  #tab-finance .fin-commitment-topic .fin-topic-settled {justify-self:start;}
}
@media(max-width: 660px) {
  #tab-finance .fin-commitment-summary {gap:.4rem;}
  #tab-finance .fin-commitment-metric {padding:.7rem .55rem;}
  #tab-finance .fin-commitment-metric span {font-size:.64rem;}
  #tab-finance .fin-commitment-metric strong {font-size:.93rem;}
  #tab-finance .fin-commitment-topic {grid-template-columns:1fr;}
  #tab-finance .fin-commitment-cat-meta {gap:.65rem;}
  #tab-finance .fin-commitment-topic-numbers {grid-template-columns:repeat(3,1fr);}
  #tab-finance .fin-preview-values {grid-template-columns:repeat(2,minmax(0,1fr));}
  #tab-finance .fin-commitment-topic .fin-topic-cta {width:100%;text-align:center;}
  #tab-finance .fin-commitment-category > summary {align-items:flex-start;}
}

#tab-finance .fin-commitment-metric--coverage { background:#f2faf4; border-color:#cfe4d4; }
#tab-finance .fin-commitment-metric--coverage small {
  display:block; font-size:.65rem; line-height:1.48; margin-top:.35rem;
  color:#526d5a; overflow-wrap:anywhere;
}
#tab-finance .fin-commitment-add-btn {
  font-size:.74rem; border-radius:8px; min-height:37px; padding:.5rem .7rem;
  box-shadow:none; background:#31764b;
}
#tab-finance .fin-commitment-topic-actions {
  display:flex; flex-direction:column; align-items:flex-end;
  gap:.4rem; flex-wrap:wrap;
}
#tab-finance .fin-topic-edit {
  border:1px solid #ead7c3; border-radius:8px;
  padding:.38rem .65rem; background:#fff9f3; color:#835524;
  font-size:.71rem; font-weight:700; cursor:pointer;
}
#tab-finance .fin-commitment-form {
  margin-top:1rem; padding:clamp(.9rem, 2vw,1.3rem);
  border:1px solid #bedcc6; border-radius:12px; background:#fbfdfa;
}
#tab-finance .fin-commitment-form[hidden] { display:none!important; }
#tab-finance .fin-commitment-form .fin-fields .ff input,
#tab-finance .fin-commitment-form .fin-fields .ff select {
  width:100%; min-width:0; border:1px solid #d3c5b6;
  background:#fff; border-radius:9px; min-height:43px;
  padding:.62rem .75rem; font-size:.84rem; font-family:'DM Sans',sans-serif;
}
#tab-finance .fin-commitment-form .fin-panel-head h3 {
  font-size:1.05rem; margin:0; color:#314e3a;
}
#tab-finance .fin-commitment-form .fin-panel-head p {
  font-size:.75rem; line-height:1.5; margin:.38rem 0 0; color:#6f746c;
}
#tab-finance .fin-commitment-form .fin-fields .ff label {
  color:#645044; font-size:.72rem; font-weight:800;
  text-transform:none; letter-spacing:0;
}
@media(max-width: 970px) {
  #tab-finance .fin-commitment-summary {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width: 660px) {
  #tab-finance .fin-commitment-topic-actions {align-items:stretch;}
  #tab-finance .fin-commitment-add-btn {width:100%;}
  #tab-finance .fin-commitment-topic-numbers {grid-template-columns:repeat(3,minmax(0,1fr));}
  #tab-finance .fin-commitment-form .fin-field--span2 {grid-column:auto;}
}

/* Funding health: make reserve policy visible BEFORE operational expense rows. */
#tab-finance .fin-funding-position {
  display:grid;grid-template-columns:minmax(0,1.6fr) minmax(245px,.78fr);
  gap:0;margin:0 0 1.2rem;border-radius:18px;overflow:hidden;
  border:1px solid #d6dccc;background:#ffffff;
  box-shadow:0 8px 26px rgba(39,41,30,.065);
}
#tab-finance .fin-funding-main {
  background:linear-gradient(122deg,#2b413e 0%,#214236 55%,#304e3a 100%);
  padding:clamp(1.05rem,2.4vw,1.65rem);
  color:#fff;min-width:0;
}
#tab-finance .fin-funding-eyebrow {
  display:inline-flex;align-items:center;gap:.4rem;text-transform:uppercase;
  font-size:.66rem;font-weight:800;letter-spacing:.13em;color:#c6e5cf;
  margin-bottom:.68rem;line-height:1.5;
}
#tab-finance .fin-funding-main h2 {
  margin:0 0 .6rem;color:#f7fbf8;font-size:clamp(.94rem,1.5vw,1.18rem);
  font-weight:750;line-height:1.38;
}
#tab-finance .fin-funding-verdict {
  font-size:clamp(1.75rem,3.25vw,2.55rem);
  font-weight:850;letter-spacing:-.045em;
  line-height:1.12;color:#dbffe4;font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
#tab-finance .fin-funding--short .fin-funding-verdict {color:#ffe0ab;}
#tab-finance .fin-funding-main p {
  font-size:.77rem;line-height:1.55;color:#e5f0e7;
  max-width:680px;margin:.67rem 0 .8rem;
}
#tab-finance .fin-funding-bar {
  height:9px;background:rgba(255,255,255,.24);
  border-radius:100px;overflow:hidden;
}
#tab-finance .fin-funding-bar span {
  display:block;height:100%;background:#c9e6bc;border-radius:inherit;
  min-width:0;transition:width .32s ease;
}
#tab-finance .fin-funding--short .fin-funding-bar span {background:#f8c67f;}
#tab-finance .fin-funding-scale {
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:.35rem .7rem;font-size:.69rem;
  color:#dce8db;margin-top:.4rem;
}
#tab-finance .fin-funding-contrast {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.58rem;margin-top:1.05rem;
}
#tab-finance .fin-funding-contrast>div {
  border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.08);border-radius:10px;
  padding:.65rem .75rem;min-width:0;
}
#tab-finance .fin-funding-contrast span {
  display:block;color:#d9e7dc;font-size:.69rem;line-height:1.4;
}
#tab-finance .fin-funding-contrast strong {
  display:block;color:#fff;font-size:.94rem;font-weight:800;
  margin-top:.24rem;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;
}
#tab-finance .fin-funding-reserve {
  background:#f8f9f5;padding:clamp(1.05rem,2.2vw,1.55rem);
  display:flex;flex-direction:column;align-items:flex-start;
}
#tab-finance .fin-reserve-label {
  font-weight:800;font-size:.71rem;text-transform:uppercase;
  letter-spacing:.075em;color:#62705f;
}
#tab-finance .fin-funding-reserve>strong {
  color:#344a35;font-size:clamp(1.32rem,2.3vw,1.92rem);
  font-weight:850;letter-spacing:-.045em;margin-top:.36rem;
  font-variant-numeric:tabular-nums;
}
#tab-finance .fin-funding-reserve p {
  font-size:.77rem;line-height:1.55;color:#667063;
  margin:.5rem 0 .75rem;
}
#tab-finance .fin-funding-reserve label {
  display:block;font-size:.72rem;font-weight:800;color:#485746;
  margin-bottom:.35rem;
}
#tab-finance .fin-reserve-edit {
  display:flex;width:100%;gap:.4rem;align-items:stretch;min-width:0;
}
#tab-finance .fin-reserve-edit input {
  min-width:0;flex:1;width:100%;min-height:42px;
  border:1px solid #c8d5c5;background:#fff;color:#2a3f2a;
  border-radius:9px;padding:.55rem .65rem;font:700 .88rem 'DM Sans',sans-serif;
}
#tab-finance .fin-reserve-edit button {
  border:0;border-radius:9px;background:#2e6b47;color:#fff;
  font-weight:800;font-size:.75rem;padding:.6rem .75rem;
  cursor:pointer;white-space:nowrap;
}
#tab-finance .fin-funding-reserve #fin-reserve-help {
  font-size:.69rem;color:#718071;line-height:1.48;margin-top:.5rem;
}
#tab-finance .fin-funding-reserve #fin-reserve-status {
  font-size:.7rem;color:#607364;line-height:1.45;margin-top:.5rem;
}
#tab-finance .fin-funding-share-link {
  color:#2b6e49;font-size:.73rem;font-weight:800;
  text-underline-offset:3px;margin-top:auto;padding-top:1.05rem;
}
@media(max-width:900px){
  #tab-finance .fin-funding-position {grid-template-columns:1fr;}
  #tab-finance .fin-funding-reserve {border-top:1px solid #d6e0d2;}
}
@media(max-width:520px){
  #tab-finance .fin-funding-contrast {grid-template-columns:1fr 1fr;}
  #tab-finance .fin-funding-contrast>div {padding:.62rem;}
  #tab-finance .fin-funding-main {padding:1.08rem .9rem;}
  #tab-finance .fin-funding-reserve {padding:1rem .9rem;}
}
@media(prefers-reduced-motion:reduce){
  #tab-finance .fin-funding-bar span {transition:none;}
}

/* Finance: confirmed unpaid amounts are liabilities, not neutral expenses.
   Use distinct, consistent red for every positive amount still owed. */
#tab-finance .fin-stat--highlight {
  background: #fff5f4;
  border-color: #f1c7c2;
}
#tab-finance .fin-stat--highlight .fin-stat-value,
#tab-finance .fin-stat--highlight .fin-stat-label {
  color: #ab261c;
}
#tab-finance .fin-stat--highlight .fin-stat-progress > span {
  background: #c43a2c;
}
#tab-finance .fin-commitment-metric--due {
  background: #fff3f2;
  border-color: #efbdb6;
}
#tab-finance .fin-commitment-metric--due strong,
#tab-finance .fin-commitment-metric--due strong.fin-unpaid {
  color: #b42318;
}
#tab-finance .fin-commitment-cat-meta strong.fin-amount-due.fin-unpaid,
#tab-finance .fin-commitment-topic-numbers strong.fin-amount-due.fin-unpaid {
  color: #b42318;
  font-weight: 850;
}
#tab-finance .fin-commitment-cat-meta strong.fin-amount-due.fin-settled,
#tab-finance .fin-commitment-topic-numbers strong.fin-amount-due.fin-settled {
  color: #267544;
}
#tab-finance .fin-commitment-category.fin-category-unpaid > summary {
  border-left: 3px solid #ce4a3e;
}
#tab-finance .fin-commitment-topic.fin-topic-unpaid {
  border-left: 3px solid #e1a49d;
}
#tab-finance #fin-preview-due {
  color: #b42318;
}
/* The new full-cash scenario is visible only on authenticated Admin Finance;
   the resident page never renders this card or receives its numeric value. */
#tab-finance .fin-commitment-summary {
  grid-template-columns: repeat(5, minmax(0,1fr));
}
#tab-finance .fin-commitment-metric--allcash {
  background: #f7f6fc;
  border-color: #d7d5e5;
}
#tab-finance .fin-commitment-metric--allcash strong {
  color: #3d3b63;
}
#tab-finance .fin-commitment-metric--allcash strong.fin-shortfall {
  color: #b42318;
}
#tab-finance .fin-commitment-metric--allcash small {
  display: block;
  color: #68677b;
  font-size: .64rem;
  line-height: 1.48;
  margin-top: .38rem;
}
@media(max-width:1120px) {
  #tab-finance .fin-commitment-summary {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
}
@media(max-width:760px) {
  #tab-finance .fin-commitment-summary {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
  #tab-finance .fin-commitment-metric--allcash {
    grid-column: 1 / -1;
  }
}
