






:root {
  




  --build: "zenith-shell-v1697";

  
  --ink: #ecf9f7;
  --muted: #93aaa8;
  
  --line: #2c484b;
  --surface: #102326;
  --surface-2: #162d30;
  --page: #081416;
  --group: #173033;
  --group-nested: #0e2022;
  












  --bar-track: #274244;
  
  --header: #071416;
  --on-header: #edfafa;
  --on-header-muted: #94aaa8;
  
  --accent: #117a70;        
  --accent-dark: #0e655e;   
  --accent-line: #2dd4bf;   
  --on-accent: #ffffff;
  --link-fg: #67e8d7;
  --focus: #67e8d7;
  
  --input-bg: #162d30;
  --input-border: #3c5c60;
  --btn-secondary-bg: #162d30;
  --btn-secondary-border: #3c5c60;
  --topbar-btn-border: #426367;
  
  --th-bg: #163033;
  









  --total-row-bg: var(--th-bg);
  






  --ledger-value-x: 8rem;
  

  --th-fg: #99b0ae;
  --tab-count-bg: #193639;
  --view-tabs-border: #294649;
  --bar-week-line: rgba(255, 255, 255, 0.42);
  --dialog-border: #365659;
  --backdrop: rgba(0, 0, 0, 0.58);
  --toast-bg: #193639;
  --toast-fg: #edfafa;
  
  --conn-border: #426367;
  --conn-online-fg: #8cebdc;
  --conn-online-border: #37766f;
  --conn-error-fg: #f4b6ae;
  --conn-error-border: #8a5651;
  
  --danger: #e08078;
  --danger-soft: #3a2320;
  --on-danger: #2a1310;
  --warning: #cea764;
  --warning-soft: #362b16;
  --warning-strong: #d69235;
  





  --caution: #c18258;
  







  --bar-over: #b86259;
  
















  --pie-1: #bd7556;
  --pie-2: #ab903f;
  --pie-3: #438949;
  --pie-4: #4672a4;
  --pie-5: #96619e;
  --success: #52cfa3;
  --success-soft: #12372f;
  
  --badge-bg: #183235;
  --badge-border: #36575a;
  --badge-legal-fg: #f0a49c;
  --badge-legal-border: #7a4741;
  --badge-prelegal-fg: #e6bb6d;
  --badge-prelegal-border: #6d5a2c;
  --badge-settlement-fg: #78d29b;
  --badge-settlement-border: #3c6b4e;
  --bucket-joint-fg: #78e3d0;
  --bucket-joint-bg: #103933;
  --bucket-joint-border: #35776e;
  --bucket-personal-fg: #c3a9e8;
  --bucket-personal-bg: #2b2440;
  --bucket-personal-border: #54467a;
  
  --shadow: 0 12px 34px rgba(0, 0, 0, 0.5);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 1px 3px rgba(0, 0, 0, 0.45), 0 6px 18px rgba(0, 0, 0, 0.4);
  

  --raise-edge: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  
  --surface-alt: #12282a;
  
  --space-1: 4px;
  --space-2: 8px;
  









  --table-gutter-right: 8px;
  
  --earn-share-slot: 22px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  
  --radius-sm: 5px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  
  








  --fs-micro: 9px;
  --fs-eyebrow: 11px;
  --fs-caption: 12px;
  --fs-cell: 13px;
  





  --fs-figure: 15px;
  





  --fs-money: 14px;
  





  --bar-week-now: rgba(160, 160, 160, 0.20);
  








  --bar-week-over-edge: rgba(245, 189, 92, 0.95);
  --fs-title: 21px;
  

  --fs-title-sm: 19px;
  --fs-kpi: 21px;
  
  










  --motion-fast: 120ms;
  --motion-base: 380ms;
  --motion-slow: 420ms;
  --ease: cubic-bezier(0.2, 0.6, 0.2, 1);
  




  --ease-spring: cubic-bezier(0.34, 1.32, 0.64, 1);
  



  --brand-tile-1: #1a8b74;
  --brand-tile-2: #0f5b4d;
  






  color-scheme: dark;
  --rideshare-uber: #159987;
  --rideshare-lyft: #6edcc7;
  --accent-fill: #0f6d65;
}




:root { --rideshare-uber: #117f73; --rideshare-lyft: #70d6c2;
        








        --rideshare-rest: var(--bar-track); }




* { box-sizing: border-box; }
html {
  background: var(--page);
}


.view-tabs::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--line);
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--page);
  font: 14px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible {
  





  outline: 2px solid var(--focus);
  outline-offset: 1px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.topbar {
  min-height: 76px;
  padding: 14px 22px;
  background: var(--header);
  color: var(--on-header);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  

  position: sticky;
  top: 0;
  z-index: 30;
}
.topbar h1 { margin: 0; font-size: var(--fs-title); font-weight: 700; letter-spacing: -0.015em; }
.topbar p { margin: 3px 0 0; color: var(--on-header-muted); font-size: 12px; }



.brand-tagline {
  margin: 2px 0 0;
  color: var(--on-header);
  opacity: 0.72;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.09em;
}
.top-actions { display: flex; align-items: center; gap: var(--space-2); }




.brand { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.brand-text { min-width: 0; }





.brand-demo {
  margin-left: 6px; font-size: 0.62em; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted);
  vertical-align: baseline;
}
.brand-mark {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: block;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}























.brand-stop-1 { stop-color: var(--brand-tile-1); }
.brand-stop-2 { stop-color: var(--brand-tile-2); }
.brand-edge { stroke: #ffffff; stroke-opacity: 0.14; }
.connection { font-size: 12px; padding: 4px 8px; border: 1px solid var(--conn-border); border-radius: 4px; color: var(--on-header); }
.connection.online { color: var(--conn-online-fg); border-color: var(--conn-online-border); }
.connection.error { color: var(--conn-error-fg); border-color: var(--conn-error-border); }









main {
  padding: 14px 18px calc(28px + env(safe-area-inset-bottom, 0px));
}


.view-stage { position: relative; }













.view-stage.is-switching { clip-path: inset(0); }








.view-tabs {
  position: relative;
  

  margin-bottom: var(--space-3);
  







  display: flex;
  justify-content: space-between;
  gap: 4px;
  






  padding: 0 12px;
  border: 0;
  border-radius: 0;
  margin: -2px 0 12px;
  


  position: sticky;
  top: var(--topbar-h, 76px);
  z-index: 20;
  


  background: var(--page);
}










.view-subtabs[hidden] { display: none; }







.tabs[hidden] { display: none; }
.button[hidden] { display: none; }
.link-button[hidden] { display: none; }
.joint-detail-list > div[hidden] { display: none; }

.view-subtabs {
  position: sticky;
  




  top: calc(var(--topbar-h, 76px) + var(--tabs-h, 57px) + 6px);
  z-index: 19;
  display: flex;
  

  gap: 20px;
  


  margin: 4px 0 12px;
  

  padding: 0 0 10px;
  background: var(--page);
  max-width: 640px;
}














.view-subtab {
  appearance: none; cursor: pointer;
  padding: 5px 2px;
  min-height: 32px;                    
  font: inherit; font-size: 13px; font-weight: 600;
  color: var(--muted);
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  white-space: nowrap;
  transition: background var(--motion-fast) var(--ease),
              color var(--motion-fast) var(--ease),
              border-color var(--motion-fast) var(--ease);
}


.view-subtab.active {
  color: var(--ink);
  font-weight: 700;
  border-bottom-color: var(--accent-line);
}
.view-subtab:hover:not(.active) { color: var(--ink); }








.view-tabs { max-width: 640px; }
.view-tab {
  




  flex: 1 1 0;
  





  

  flex: 0 0 auto;
  





  min-height: 44px;                
  
  padding: 8px 2px 10px;
  text-align: center;
  border: 0;
  





  border-bottom: 3px solid transparent;
  border-radius: 2px 2px 0 0;
  color: var(--muted);
  background: transparent;
  font-size: 16px;
  font-weight: 600;
  white-space: nowrap;
  transition: background var(--motion-fast) var(--ease),
              color var(--motion-fast) var(--ease),
              border-color var(--motion-fast) var(--ease);
}
.view-tab:hover:not(.active) { color: var(--ink); }




.view-tab.active {
  color: var(--ink);
  font-weight: 700;
  background: transparent;
  border-bottom-color: var(--accent-line);
  margin-bottom: -1px;             
  







  position: relative;
  z-index: 1;
}















.view-tab:focus-visible { outline: 2px solid var(--focus); outline-offset: -3px; }
.view-tab.active .tab-count { background: var(--accent); color: var(--on-accent); }
.dashboard-view[hidden] { display: none; }













[hidden] { display: none !important; }
.kpi-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--surface);
  box-shadow: var(--shadow-sm), var(--raise-edge);
  margin-bottom: var(--space-3);
  


  position: sticky;
  top: var(--chrome-h, 122px);
  z-index: 15;
}





dialog .kpi-strip { position: static; z-index: auto; }
.kpi-strip > div { padding: var(--space-2) var(--space-3); border-right: 1px solid var(--line); min-height: 58px; }
.kpi-strip > div:last-child { border-right: 0; }
.kpi-strip > div > span:first-child { display: block; }
.kpi-strip span { display: block; color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em; }






.kpi-strip .cad, .kpi-strip .cad-sep { display: inline; text-transform: none; }
.kpi-strip strong { display: inline-block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; margin-top: var(--space-1); font-size: var(--fs-kpi); font-weight: 700; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.kpi-strip .danger-kpi strong { color: var(--danger); }





.kpi-strip .kpi-sub { display: inline; white-space: nowrap; margin-top: 0; margin-left: var(--space-2); color: var(--muted); font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.kpi-strip .kpi-sub b { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.kpi-strip .kpi-sub.danger-sub b { color: var(--danger); }


.kpi-strip .kpi-sum { border-left: 2px solid var(--accent-line); }
.alerts-list { display: grid; gap: 8px; }
.alert-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 14px; border: 1px solid var(--line); border-left: 5px solid var(--warning); border-radius: 6px; background: var(--surface); }
.alert-item.critical { border-left-color: var(--danger); }
.alert-item.high { border-left-color: var(--warning-strong); }
.alert-item.medium { border-left-color: var(--success); }
.alert-heading { display: flex; align-items: center; gap: 8px; }
.alert-heading h2 { margin: 0; font-size: var(--fs-figure); }
.alert-copy p { margin: 5px 0; }
.alert-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }

.filter-toggle { display: none; }   
.controls {
  display: flex;
  align-items: end;
  gap: 9px;
  flex-wrap: wrap;
  padding: var(--space-3);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm), var(--raise-edge);
  margin-bottom: var(--space-3);
}
.controls label { display: grid; gap: 3px; color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em; }
.controls input[type="search"] { min-width: 270px; }



.controls input[type="search"]::placeholder { color: var(--muted); opacity: 1; }
.controls input[type="search"], .controls select, .form-grid input, .form-grid select, .form-grid textarea {
  min-height: 34px;
  border: 1px solid var(--input-border);
  border-radius: var(--radius-sm);
  color: var(--ink);
  background: var(--input-bg);
  padding: 6px 8px;
}








.debt-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }


.control-label + .segset { margin-left: -4px; }
.debt-controls > label, .debt-controls > .segset { width: auto; }
.segset {
  

  flex: 0 0 auto;
  display: inline-flex; align-items: stretch;
  

  padding: 0; gap: 0;
  overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--radius-pill);
  background: var(--group);
}
.seg {
  min-height: 30px; padding: 4px 12px;
  border: 0; border-radius: var(--radius-pill);
  background: transparent; color: var(--muted);
  font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer;
  transition: background var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);
}
.seg:hover:not(.is-on) { color: var(--ink); }
.seg.is-on { background: var(--surface); color: var(--ink); font-weight: 700; box-shadow: var(--shadow-sm), var(--raise-edge); }
.seg:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }


.seg-count {
  margin-left: 3px; font-size: var(--fs-micro); font-weight: 700; line-height: 1;
  vertical-align: super; font-variant-numeric: tabular-nums; opacity: .75;
}
.seg-count.is-zero { opacity: .4; }
.seg.is-on .seg-count { opacity: .9; }

.segset-solo .seg.is-on { background: var(--danger); color: #ffffff; }
.seg-legal.is-on { box-shadow: var(--shadow-sm); }







.toggle-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; width: 100%; grid-column: 1 / -1; }


.toggle-chip.is-legal:has(input:checked) { border-color: var(--danger); background: var(--danger); }
.button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px var(--space-3);
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease);
}





.button.primary { color: var(--on-accent); background: var(--accent-fill, var(--accent)); border-color: var(--accent-fill, var(--accent)); }
.button.primary:hover { background: var(--accent-dark); border-color: var(--accent-dark); }
.button.secondary { color: var(--ink); background: var(--btn-secondary-bg); border-color: var(--btn-secondary-border); }
.topbar .button.secondary { color: var(--on-header); background: transparent; border-color: var(--topbar-btn-border); }

.table-shell {
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: var(--shadow-sm), var(--raise-edge);
  overflow: auto;
  









  min-height: 0;
  max-height: calc(100vh - 230px);
  


  margin-bottom: var(--space-2);
  

  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.table-shell.is-loading { min-height: 360px; }
.table-shell::-webkit-scrollbar { height: 11px; width: 11px; }
.table-shell::-webkit-scrollbar-track { background: transparent; }
.table-shell::-webkit-scrollbar-thumb {
  background: var(--line);
  border-radius: 6px;
  border: 2px solid var(--surface);
}
.table-shell::-webkit-scrollbar-corner { background: transparent; }
table { border-collapse: separate; border-spacing: 0; width: 100%; }





main table { min-width: 1760px; }








.heloc-table .heloc-repay { color: var(--success); font-weight: 700; }
.heloc-table th:nth-child(1), .heloc-table td:nth-child(1) { width: 1%; white-space: nowrap; }
.heloc-table th:nth-child(3), .heloc-table td:nth-child(3) { width: 100%; }
.heloc-table th:nth-child(2), .heloc-table td:nth-child(2) { width: 1%; white-space: nowrap; }
.heloc-table th:nth-child(4), .heloc-table td:nth-child(4) { width: 1%; white-space: nowrap; }
.heloc-table th:last-child, .heloc-table td:last-child { width: 1%; white-space: nowrap; }
.heloc-table { min-width: 760px; }












td { white-space: nowrap; }
.group-row td, .subtotal-row td, .grand-total-row td { white-space: normal; }
.col-grouped { display: none; }



#accounts-table th.number, #accounts-table td.number,
#accounts-table th.date-cell, #accounts-table td.date-cell { width: 1%; white-space: nowrap; }
#accounts-table td:nth-child(2) .clip-cell,
#accounts-table td:nth-child(3) .clip-cell { max-width: none; }

.nm-short { display: none; }
th, td { height: 28px; padding: 3px var(--space-3); border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; font-size: var(--fs-cell); }





th:first-child, td:first-child { position: sticky; left: 0; z-index: 2; background: var(--surface); }
th:first-child { z-index: 4; background: var(--th-bg); }









@media (hover: hover) {
  tbody tr:hover td { background: var(--surface-alt); }
}
.group-row td:first-child { background: var(--group); }
.group-row.nested td:first-child { background: var(--group-nested); }
.grand-total-row td:first-child { background: var(--total-row-bg); z-index: 5; }
th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--th-bg);
  color: var(--th-fg);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
td { background: var(--surface); }
td.number, th.number { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.account-row { cursor: pointer; }
.account-row td { transition: background var(--motion-fast) var(--ease); }
.account-row:hover td { background: var(--surface-2); }
.account-name { display: block; font-weight: 600; max-width: 340px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.account-id { display: block; color: var(--muted); font-size: 11px; margin-top: 2px; }




.clip-cell, .collector, .status-cell, .joint-notes, .heloc-tx-memo {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


.clip-cell { max-width: 300px; }
.collector { max-width: 330px; }   
.status-cell { max-width: 260px; }



.group-row td {
  background: var(--group); font-weight: 700; vertical-align: middle;
  position: sticky; top: 28px; z-index: 2;
}
.group-row.nested td { top: 56px; z-index: 1; }
.group-row.nested td { background: var(--group-nested); }
.group-label { display: flex; align-items: center; gap: 7px; }
.group-toggle {
  width: 24px;
  height: 24px;
  border: 1px solid var(--btn-secondary-border);
  background: var(--btn-secondary-bg);
  color: var(--ink);
  border-radius: 3px;
  padding: 0;
  font-weight: 700;
}
.group-count { color: var(--muted); font-size: 11px; font-weight: 500; }
.date-cell { white-space: nowrap; }







.blank-value {
  display: inline-block;
  min-width: 14px;
  




  color: color-mix(in srgb, currentColor 52%, transparent);
  font-weight: 400;
  cursor: help;
}
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
  .blank-value { opacity: 0.52; }
}










.app-busy {
  

  position: fixed; left: 50%; transform: translateX(-50%);
  bottom: calc(env(safe-area-inset-bottom, 0px) + 18px);
  z-index: 80; display: flex; align-items: center; gap: 8px;
  padding: 6px 12px; border-radius: 999px;
  background: var(--surface-raised, var(--surface)); color: var(--muted);
  box-shadow: inset 0 0 0 1px var(--line), 0 6px 20px rgba(0, 0, 0, 0.35);
  font-size: var(--fs-eyebrow); font-weight: 600; pointer-events: none;
}
.app-busy[hidden] { display: none; }
.app-busy-spin {
  width: 12px; height: 12px; border-radius: 50%;
  border: 2px solid var(--line); border-top-color: var(--accent);
  animation: app-busy-spin 800ms linear infinite;
}
@keyframes app-busy-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .app-busy-spin { animation-duration: 2400ms; }
}



.has-sliding-underline > .sliding-tab-underline {
  position: absolute; left: 0; z-index: 2; pointer-events: none;
  background: var(--accent-line);
  transition: transform var(--motion-slow) var(--ease),
              width var(--motion-slow) var(--ease);
}
.view-tabs.has-sliding-underline > .view-tab.active,
.view-subtabs.has-sliding-underline > .view-subtab.active,
.rs-analytics-tabs.has-sliding-underline > .tab.active {
  border-bottom-color: transparent;
}
@media (prefers-reduced-motion: reduce) {
  .has-sliding-underline > .sliding-tab-underline { transition: none; }
}






:root[data-color-theme="midnight"] {
  --ink: #ecf9f7;
  --muted: #93aaa8;
  --line: #2c484b;
  --surface: #102326;
  --surface-2: #162d30;
  --page: #081416;
  --group: #173033;
  --group-nested: #0e2022;
  --bar-track: #274244;
  --header: #071416;
  --on-header: #edfafa;
  --on-header-muted: #94aaa8;
  --accent: #117a70;
  --accent-dark: #0e655e;
  --accent-line: #2dd4bf;
  --on-accent: #ffffff;
  --link-fg: #67e8d7;
  --focus: #67e8d7;
  --input-bg: #162d30;
  --input-border: #3c5c60;
  --btn-secondary-bg: #162d30;
  --btn-secondary-border: #3c5c60;
  --topbar-btn-border: #426367;
  --th-bg: #163033;
  --th-fg: #99b0ae;
  --tab-count-bg: #193639;
  --view-tabs-border: #294649;
  --dialog-border: #365659;
  --toast-bg: #193639;
  --toast-fg: #edfafa;
  --conn-border: #426367;
  --conn-online-fg: #8cebdc;
  --conn-online-border: #37766f;
  --conn-error-fg: #f4b6ae;
  --conn-error-border: #8a5651;
  --danger: #ef8f88;
  --danger-soft: #422321;
  --on-danger: #2a1310;
  --warning: #e4ba68;
  --warning-soft: #3b3019;
  --warning-strong: #df963d;
  --caution: #d69052;
  --bar-over: #be625a;
  --pie-1: #c17a58;
  --pie-2: #b09542;
  --pie-3: #4e9257;
  --pie-4: #4d7caa;
  --pie-5: #9b68a3;
  --success: #52cfa3;
  --success-soft: #12372f;
  --badge-bg: #183235;
  --badge-border: #36575a;
  --badge-legal-fg: #f2a49d;
  --badge-legal-border: #824a44;
  --badge-prelegal-fg: #e8bd70;
  --badge-prelegal-border: #705c2e;
  --badge-settlement-fg: #7bd8a1;
  --badge-settlement-border: #3d7053;
  --bucket-joint-fg: #78e3d0;
  --bucket-joint-bg: #103933;
  --bucket-joint-border: #35776e;
  --bucket-personal-fg: #c7aceb;
  --bucket-personal-bg: #2c2542;
  --bucket-personal-border: #594a80;
  --surface-alt: #12282a;
  --brand-tile-1: #159987;
  --brand-tile-2: #0b5f59;
  --rideshare-uber: #117f73;
  --rideshare-lyft: #70d6c2;
  --accent-fill: #0f6d65;
  --bar-week-over-edge: rgba(245, 196, 101, 0.95);
}

:root[data-color-theme="forest"] {
  --ink: #e4eae7;
  --muted: #98a5a0;
  --line: #36423c;
  --surface: #1e2722;
  --surface-2: #232c28;
  --page: #10150f;
  --group: #242e2a;
  --group-nested: #1d2521;
  --bar-track: #333f3a;
  --header: #0e1512;
  --on-header: #eaf1ee;
  --on-header-muted: #9fb0a9;
  --accent: #157f69;
  --accent-dark: #12735d;
  --accent-line: #3fbe9d;
  --on-accent: #ffffff;
  --link-fg: #5cc7aa;
  --focus: #3fbe9d;
  --input-bg: #232c28;
  --input-border: #41504a;
  --btn-secondary-bg: #232c28;
  --btn-secondary-border: #41504a;
  --topbar-btn-border: #4a5a53;
  --th-bg: #232e2a;
  --th-fg: #98a5a0;
  --tab-count-bg: #2b3833;
  --view-tabs-border: #33403b;
  --dialog-border: #3a4641;
  --toast-bg: #2b3833;
  --toast-fg: #eaf1ee;
  --conn-border: #4a5a53;
  --conn-online-fg: #9fe3c4;
  --conn-online-border: #3f7a5f;
  --conn-error-fg: #f4b6ae;
  --conn-error-border: #8a5651;
  --danger: #e08078;
  --danger-soft: #3a2320;
  --on-danger: #2a1310;
  --warning: #cea764;
  --warning-soft: #362b16;
  --warning-strong: #d69235;
  --caution: #d09a5f;
  --bar-over: #b86259;
  --pie-1: #bd7556;
  --pie-2: #ab903f;
  --pie-3: #438949;
  --pie-4: #4672a4;
  --pie-5: #96619e;
  --success: #62c187;
  --success-soft: #1e3227;
  --badge-bg: #252f2b;
  --badge-border: #3d4a44;
  --badge-legal-fg: #f0a49c;
  --badge-legal-border: #7a4741;
  --badge-prelegal-fg: #e6bb6d;
  --badge-prelegal-border: #6d5a2c;
  --badge-settlement-fg: #78d29b;
  --badge-settlement-border: #3c6b4e;
  --bucket-joint-fg: #7fd4bd;
  --bucket-joint-bg: #1c342d;
  --bucket-joint-border: #3a6b5c;
  --bucket-personal-fg: #c3a9e8;
  --bucket-personal-bg: #2b2440;
  --bucket-personal-border: #54467a;
  --surface-alt: #1f2723;
  --brand-tile-1: #1a8b74;
  --brand-tile-2: #0f5b4d;
  --rideshare-uber: #147864;
  --rideshare-lyft: #79c3a9;
  --accent-fill: #157a63;
  --bar-week-over-edge: rgba(245, 189, 92, 0.95);
}

:root[data-color-theme="graphite"] {
  --ink: #f4f1e9;
  --muted: #aaa69b;
  --line: #4b493f;
  --surface: #23221f;
  --surface-2: #2a2925;
  --page: #121211;
  --group: #2e2c27;
  --group-nested: #1c1b19;
  --bar-track: #454137;
  --header: #171611;
  --on-header: #f5f1e8;
  --on-header-muted: #afa99b;
  --accent: #7b5d1e;
  --accent-dark: #654b18;
  --accent-line: #d7b35c;
  --on-accent: #ffffff;
  --link-fg: #e8cf8a;
  --focus: #e8cf8a;
  --input-bg: #2a2925;
  --input-border: #5a574c;
  --btn-secondary-bg: #2a2925;
  --btn-secondary-border: #5a574c;
  --topbar-btn-border: #625e50;
  --th-bg: #302e28;
  --th-fg: #b6b0a2;
  --tab-count-bg: #37342d;
  --view-tabs-border: #49463d;
  --dialog-border: #565248;
  --toast-bg: #37342d;
  --toast-fg: #f5f1e8;
  --conn-border: #625e50;
  --conn-online-fg: #9ad4ad;
  --conn-online-border: #54755d;
  --conn-error-fg: #f1aaa3;
  --conn-error-border: #86534e;
  --danger: #e88b83;
  --danger-soft: #402522;
  --on-danger: #2b1311;
  --warning: #e0b85f;
  --warning-soft: #3a301d;
  --warning-strong: #d39137;
  --caution: #c68c49;
  --bar-over: #b65e57;
  --pie-1: #c77d55;
  --pie-2: #b99a44;
  --pie-3: #5f9358;
  --pie-4: #557a9f;
  --pie-5: #9870a0;
  --success: #91ad7d;
  --success-soft: #213729;
  --badge-bg: #302e29;
  --badge-border: #514e45;
  --badge-legal-fg: #f0a39b;
  --badge-legal-border: #7d4b46;
  --badge-prelegal-fg: #e8c16d;
  --badge-prelegal-border: #705c31;
  --badge-settlement-fg: #91d2a8;
  --badge-settlement-border: #496d54;
  --bucket-joint-fg: #95d9bf;
  --bucket-joint-bg: #24362f;
  --bucket-joint-border: #4a7061;
  --bucket-personal-fg: #cab2e6;
  --bucket-personal-bg: #312a3f;
  --bucket-personal-border: #5d5075;
  --surface-alt: #272620;
  --brand-tile-1: #b08a39;
  --brand-tile-2: #6f531c;
  --rideshare-uber: #b38b36;
  --rideshare-lyft: #dfc479;
  --accent-fill: #70551d;
  --bar-week-over-edge: rgba(240, 196, 100, 0.95);
}


:root[data-color-theme="navy"] {
  --ink: #eef5ff;
  --muted: #9cadc3;
  --line: #2a425d;
  --surface: #0f1d2e;
  --surface-2: #15263a;
  --page: #07111f;
  --group: #172b42;
  --group-nested: #0c1928;
  --bar-track: #263b52;
  --header: #071321;
  --on-header: #eef6ff;
  --on-header-muted: #9fb0c5;
  --accent: #265f96;
  --accent-dark: #1f4f7e;
  --accent-line: #5da9e9;
  --on-accent: #ffffff;
  --link-fg: #79bfff;
  --focus: #79bfff;
  --input-bg: #15263a;
  --input-border: #3b5876;
  --btn-secondary-bg: #15263a;
  --btn-secondary-border: #3b5876;
  --topbar-btn-border: #45617e;
  --th-bg: #172c43;
  --th-fg: #a5b5c8;
  --tab-count-bg: #1b3048;
  --view-tabs-border: #29425c;
  --dialog-border: #365371;
  --toast-bg: #1b3048;
  --toast-fg: #eef6ff;
  --conn-border: #45617e;
  --conn-online-fg: #8cc8b0;
  --conn-online-border: #497565;
  --conn-error-fg: #efadb2;
  --conn-error-border: #835158;
  --danger: #e48b92;
  --danger-soft: #3c232a;
  --on-danger: #291215;
  --warning: #d4b36f;
  --warning-soft: #372e1d;
  --warning-strong: #cf8e3f;
  --caution: #d19b60;
  --bar-over: #ae5d64;
  --pie-1: #c77a5b;
  --pie-2: #b89d4a;
  --pie-3: #579064;
  --pie-4: #4f82bc;
  --pie-5: #9a6fa9;
  --success: #7fb89a;
  --success-soft: #19342c;
  --badge-bg: #1a2e45;
  --badge-border: #38536f;
  --badge-legal-fg: #efa6ac;
  --badge-legal-border: #7b4850;
  --badge-prelegal-fg: #dfbb73;
  --badge-prelegal-border: #67572f;
  --badge-settlement-fg: #8bc5a7;
  --badge-settlement-border: #466e5b;
  --bucket-joint-fg: #86cae9;
  --bucket-joint-bg: #173448;
  --bucket-joint-border: #3c6e86;
  --bucket-personal-fg: #c6afe7;
  --bucket-personal-bg: #29243f;
  --bucket-personal-border: #554b76;
  --surface-alt: #112238;
  --brand-tile-1: #397fb9;
  --brand-tile-2: #1c4b78;
  --rideshare-uber: #387ab0;
  --rideshare-lyft: #83b9df;
  --accent-fill: #245985;
  --bar-week-over-edge: rgba(236, 193, 106, 0.95);
}

:root[data-color-theme="arctic"] {
  --ink: #eceff4;
  --muted: #aeb8c7;
  --line: #465267;
  --surface: #252c38;
  --surface-2: #2e3644;
  --page: #1b2029;
  --group: #303947;
  --group-nested: #222934;
  --bar-track: #3c4759;
  --header: #171c24;
  --on-header: #eceff4;
  --on-header-muted: #aeb8c7;
  --accent: #4b698c;
  --accent-dark: #405b79;
  --accent-line: #88c0d0;
  --on-accent: #ffffff;
  --link-fg: #8fbcbb;
  --focus: #88c0d0;
  --input-bg: #2e3644;
  --input-border: #59677d;
  --btn-secondary-bg: #2e3644;
  --btn-secondary-border: #59677d;
  --topbar-btn-border: #59677d;
  --th-bg: #303947;
  --th-fg: #c3cad5;
  --tab-count-bg: #333d4c;
  --view-tabs-border: #465267;
  --dialog-border: #59677d;
  --toast-bg: #333d4c;
  --toast-fg: #eceff4;
  --conn-border: #59677d;
  --conn-online-fg: #899c7a;
  --conn-online-border: #6f8762;
  --conn-error-fg: #e39aa0;
  --conn-error-border: #8b545b;
  --danger: #e39aa0;
  --danger-soft: #53333a;
  --on-danger: #261417;
  --warning: #ebcb8b;
  --warning-soft: #504529;
  --warning-strong: #d6a85e;
  --caution: #dda08b;
  --bar-over: #bf616a;
  --pie-1: #d08770;
  --pie-2: #ebcb8b;
  --pie-3: #899c7a;
  --pie-4: #81a1c1;
  --pie-5: #8fbcbb;
  --success: #899c7a;
  --success-soft: #2d422f;
  --badge-bg: #303947;
  --badge-border: #59677d;
  --badge-legal-fg: #e39aa0;
  --badge-legal-border: #8b545b;
  --badge-prelegal-fg: #ebcb8b;
  --badge-prelegal-border: #81704a;
  --badge-settlement-fg: #899c7a;
  --badge-settlement-border: #6f8762;
  --bucket-joint-fg: #8fbcbb;
  --bucket-joint-bg: #273f43;
  --bucket-joint-border: #60858a;
  --bucket-personal-fg: #b7c7dc;
  --bucket-personal-bg: #303947;
  --bucket-personal-border: #59677d;
  --surface-alt: #28313e;
  --brand-tile-1: #5e81ac;
  --brand-tile-2: #405b79;
  --rideshare-uber: #5e81ac;
  --rideshare-lyft: #88c0d0;
  --accent-fill: #4b698c;
  --bar-week-over-edge: rgba(235, 203, 139, 0.95);
}

:root[data-color-theme="copper"] {
  --ink: #f8f0e9;
  --muted: #b5a398;
  --line: #594138;
  --surface: #281b16;
  --surface-2: #32221b;
  --page: #160d09;
  --group: #38261f;
  --group-nested: #21140f;
  --bar-track: #4c3930;
  --header: #190e09;
  --on-header: #f9f1ea;
  --on-header-muted: #b9a69a;
  --accent: #7a4529;
  --accent-dark: #643720;
  --accent-line: #d28a5b;
  --on-accent: #ffffff;
  --link-fg: #efad82;
  --focus: #efad82;
  --input-bg: #32221b;
  --input-border: #684b3e;
  --btn-secondary-bg: #32221b;
  --btn-secondary-border: #684b3e;
  --topbar-btn-border: #705344;
  --th-bg: #3a2720;
  --th-fg: #bba99e;
  --tab-count-bg: #402b23;
  --view-tabs-border: #554036;
  --dialog-border: #644b40;
  --toast-bg: #402b23;
  --toast-fg: #f9f1ea;
  --conn-border: #705344;
  --conn-online-fg: #a9bc98;
  --conn-online-border: #637257;
  --conn-error-fg: #f0aaa0;
  --conn-error-border: #86534a;
  --danger: #e48d81;
  --danger-soft: #45261f;
  --on-danger: #2c140f;
  --warning: #d6aa62;
  --warning-soft: #3d2d18;
  --warning-strong: #d28438;
  --caution: #d47d52;
  --bar-over: #b45b50;
  --pie-1: #ca744c;
  --pie-2: #b89543;
  --pie-3: #778b55;
  --pie-4: #5f7896;
  --pie-5: #956982;
  --success: #899a7e;
  --success-soft: #2d3428;
  --badge-bg: #3a2821;
  --badge-border: #60483d;
  --badge-legal-fg: #f0a198;
  --badge-legal-border: #7f4941;
  --badge-prelegal-fg: #dfb369;
  --badge-prelegal-border: #6c542b;
  --badge-settlement-fg: #a7b79c;
  --badge-settlement-border: #606d58;
  --bucket-joint-fg: #a9c0ac;
  --bucket-joint-bg: #2c3830;
  --bucket-joint-border: #5a6d5e;
  --bucket-personal-fg: #c9abc1;
  --bucket-personal-bg: #382733;
  --bucket-personal-border: #684d5e;
  --surface-alt: #2d1f18;
  --brand-tile-1: #a45f35;
  --brand-tile-2: #65341d;
  --rideshare-uber: #9b5a35;
  --rideshare-lyft: #d89a6d;
  --accent-fill: #704027;
  --bar-week-over-edge: rgba(236, 182, 91, 0.95);
}



:root[data-color-theme] { color-scheme: dark; }




.grand-total-row td {
  











  position: static;
  background: var(--total-row-bg);
  color: var(--on-header);
  font-weight: 700;
  vertical-align: middle;
  border-top: 2px solid var(--accent-line);
  border-bottom: 0;
}
.grand-total-row .group-count { color: var(--on-header-muted); }















dialog th,
dialog th:first-child,
dialog td:first-child,
dialog .grand-total-row td,
dialog .grand-total-row td:first-child { position: static; }











.budget-income-table .grand-total-row td,
.budget-bills-table .grand-total-row td,
.joint-debt-table .grand-total-row td,
.budget-income-table th,
.budget-bills-table th,
.joint-debt-table th { position: static; }





@media (min-width: 901px) {
  #view-debts .table-shell {
    



    max-height: calc(100dvh - 377px);
    min-height: 240px;
  }
}






@media (max-width: 900px) {
  #view-debts .table-shell {
    min-height: 88px;
    max-height: calc(100vh - 360px);
    max-height: calc(100dvh - 360px);
  }
}
.risk-list { display: flex; flex-wrap: nowrap; gap: 4px; min-width: 155px; white-space: nowrap; }














.badge, .bill-pill, .settle-pct, .pill, .txn-flag {
  display: inline-block;
  padding: 2px 7px;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  font-size: var(--fs-eyebrow);
  font-weight: 650;
  white-space: nowrap;
  vertical-align: middle;
}
.badge { border-color: var(--badge-border); background: var(--badge-bg); color: var(--ink); }
.badge.high, .badge.legal { color: var(--badge-legal-fg); background: var(--danger-soft); border-color: var(--badge-legal-border); }
.badge.medium, .badge.prelegal { color: var(--badge-prelegal-fg); background: var(--warning-soft); border-color: var(--badge-prelegal-border); }
.badge.low, .badge.settlement { color: var(--badge-settlement-fg); background: var(--success-soft); border-color: var(--badge-settlement-border); }


.badge.critical {
  color: var(--on-danger);
  background: var(--danger);
  border-color: var(--danger);
  font-weight: 700;
  letter-spacing: 0.02em;
}


.row-action { min-height: 20px; padding: 0 8px; }








.go-cell { width: 1%; text-align: right; }
.row-open {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; padding: 0;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--muted); cursor: pointer;
  transition: color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.row-open svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }


.account-row:hover .row-open { color: var(--ink); }
.row-open:hover, .row-open:focus-visible { color: var(--ink); background: var(--btn-secondary-bg); }

.account-row:active td { background: var(--surface-2); }






.filtered-flag {
  margin-left: 8px; padding: 1px 6px; border-radius: var(--radius-pill);
  background: var(--tab-count-bg); color: var(--muted);
  font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.02em; text-transform: none;
}












.section-breakdown {
  display: inline-flex;
  gap: 4px;
  margin-left: auto;
  text-transform: none;
}
.income-share {
  margin-left: 0; padding: 1px 6px; border-radius: var(--radius-pill);
  background: var(--tab-count-bg); color: var(--muted);
  font-size: var(--fs-caption); font-weight: 600; font-variant-numeric: tabular-nums;
}



.settle-pct {
  margin-left: 8px; letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
}
.settle-pct.nm-short { display: none; }
.settle-pct.is-agreed { background: var(--badge-settlement-bg, var(--group)); color: var(--success); }
.settle-pct.is-offer { background: var(--tab-count-bg); color: var(--warning); }



.row-chevron { display: none; margin-left: 5px; color: var(--muted); font-weight: 700; }




.name-cell { display: flex; align-items: center; min-width: 0; }
.name-cell .account-name { flex: 1 1 auto; min-width: 0; }
.name-cell > .settle-pct, .name-cell > .row-chevron { flex: 0 0 auto; }


















.joint-debt-table td.number { position: relative; }
.paid-mark, .paid-mark.nm-short {
  position: absolute; right: 1px; top: 50%; transform: translateY(-50%);
  margin-left: 0; text-align: center;
  color: var(--success); font-weight: 700; pointer-events: none;
}
.paid-mark.is-partial { color: var(--muted); }





.kpi-info-cell { position: relative; }
.info-button {
  position: absolute; top: 6px; right: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0;
  border: 0; border-radius: 50%;
  background: transparent; color: var(--muted); cursor: pointer;
  transition: color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}




















.section-head > .info-button {
  top: 0;
}























.info-button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.info-button:hover, .info-button:focus-visible, .info-button[aria-expanded="true"] {
  color: var(--ink); background: var(--btn-secondary-bg);
}






.info-tip {
  position: fixed; z-index: 60;
  width: max-content; max-width: min(340px, calc(100vw - 32px));
  padding: var(--space-2) var(--space-3);
  background: var(--surface); color: var(--ink);
  border: 1px solid var(--dialog-border); border-radius: var(--radius-md);
  box-shadow: var(--shadow), var(--raise-edge);
  text-align: left;
  



  overflow-y: auto;
}
.info-tip[hidden] { display: none; }
.info-tip-header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.info-tip-close {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; margin: -4px -4px 0 0; padding: 0;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--muted); font-size: var(--fs-figure); line-height: 1; cursor: pointer;
}
.info-tip-close:hover, .info-tip-close:focus-visible { background: var(--btn-secondary-bg); color: var(--ink); }








.info-tip-steps { display: flex; align-items: center; gap: 4px; margin-top: -4px; }
.info-tip-step {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; min-height: 44px; padding: 0;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--muted);
  font-size: var(--fs-figure); line-height: 1; cursor: pointer;
}
.info-tip-step:hover:not(:disabled), .info-tip-step:focus-visible {
  background: var(--btn-secondary-bg); color: var(--ink);
}



.info-tip-step:disabled { opacity: 0.32; cursor: default; }
.info-tip-header .info-tip-head { margin-right: auto; }


.info-tip-head {
  margin: 0 0 var(--space-2); color: var(--muted);
  font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em;
}
.info-tip-list { display: grid; gap: 6px; margin: 0; }




.info-tip-list > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-2); align-items: baseline; }
.info-tip-list dt { color: var(--muted); font-size: 12px; font-weight: 600; }




.info-tip-list dd { margin: 0; font-size: 13px; font-weight: 600; white-space: normal; text-transform: none; }
.info-tip-list dd, .info-tip-list dt, .info-tip-head { display: block; }









.info-tip span { display: inline; text-transform: none; letter-spacing: 0; font-size: inherit; color: inherit; white-space: normal; }





.info-tip .nm-short { display: none; }





.info-tip-list dd.is-prose { width: 0; min-width: 100%; }







.empty-state[hidden] { display: none; }
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 220px;
  padding: var(--space-6) var(--space-4);
  text-align: center;
  color: var(--muted);
  font-size: var(--fs-cell);
}
.empty-state::before {
  content: "\2014";
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--line);
  background: var(--surface-alt);
  color: color-mix(in srgb, var(--muted) 65%, transparent);
  font-size: 20px;
  line-height: 1;
}
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
  .empty-state::before { color: var(--muted); opacity: 0.7; }
}







.skeleton { display: none; padding: var(--space-2) 0 var(--space-3); }
.table-shell.is-loading table { display: none; }
.table-shell.is-loading .empty-state { display: none; }
.table-shell.is-loading .skeleton { display: block; }
.skeleton-head,
.skeleton-row {
  position: relative;
  overflow: hidden;
  margin: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: var(--surface-alt);
}
.skeleton-head { height: 22px; margin-bottom: var(--space-3); background: var(--group); }
.skeleton-row { height: 15px; }
.skeleton-row:nth-child(2n) { width: 82%; }
.skeleton-row:nth-child(3n) { width: 90%; }
.skeleton-row:nth-child(4n) { width: 74%; }
.skeleton-head::after,
.skeleton-row::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--line) 55%, transparent), transparent);
  transform: translateX(-100%);
  animation: skeleton-sheen var(--motion-slow) var(--ease) infinite;
  animation-duration: 1400ms;
}
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
  .skeleton-head::after, .skeleton-row::after { background: linear-gradient(90deg, transparent, var(--line), transparent); }
}
@keyframes skeleton-sheen { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) {
  .skeleton-head::after, .skeleton-row::after { animation: none; display: none; }
}
.heloc-table td:nth-child(1), .heloc-table td:nth-child(2), .heloc-table td:nth-child(3) { white-space: nowrap; }



#view-joint .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }










.kpi-strip > div.is-divided { border-left: 0; }


#view-heloc .kpi-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }




#view-heloc .heloc-terms-strip { grid-template-columns: max-content max-content 1fr; }




@media (min-width: 901px) {
  
  #view-debts .kpi-strip { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}


.joint-debt-table th:first-child, .joint-debt-table td:first-child { width: 1%; min-width: 240px; white-space: nowrap; }



.joint-debt-table th:nth-child(8), .joint-debt-table td:nth-child(8) { width: 100%; }
.joint-debt-table th:last-child, .joint-debt-table td:last-child { width: 1%; }
.joint-debt-table th.number, .joint-debt-table td.number,
.joint-debt-table th.date-cell, .joint-debt-table td.date-cell { width: 1%; white-space: nowrap; }
.joint-debt-table { min-width: 960px; }







.joint-debt-table td.joint-notes { max-width: 460px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.joint-notes { max-width: 620px; }




.joint-table-shell { min-height: 0; }



.joint-total-placeholder { color: color-mix(in srgb, currentColor 55%, transparent); font-weight: 400; }
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
  .joint-total-placeholder { opacity: 0.55; }
}
.badge.bucket-joint { color: var(--bucket-joint-fg); background: var(--bucket-joint-bg); border-color: var(--bucket-joint-border); }
.badge.bucket-personal { color: var(--bucket-personal-fg); background: var(--bucket-personal-bg); border-color: var(--bucket-personal-border); }




@media (min-width: 901px) {
  #strategy-heloc-terms { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.strategy-body .muted { color: var(--muted); font-style: italic; }


.strategy-table { min-width: 880px; }
.strategy-table tr.paid-off td { color: var(--muted); }

.pill.done { color: #0f5132; background: #d1e7dd; }






.badge.cat-mortgage { color: var(--bucket-personal-fg); background: var(--bucket-personal-bg); border-color: var(--bucket-personal-border); }
.badge.cat-joint { color: var(--bucket-joint-fg); background: var(--bucket-joint-bg); border-color: var(--bucket-joint-border); }
.badge.cat-heloc { color: var(--badge-prelegal-fg); background: var(--warning-soft); border-color: var(--badge-prelegal-border); }
.pill.autopay { color: var(--badge-settlement-fg); background: var(--success-soft); border-color: var(--badge-settlement-border); border: 1px solid var(--badge-settlement-border); }
.pill.computed { color: var(--muted); background: var(--group); border: 1px solid var(--line); }





.budget-section { margin-top: var(--space-1); }













.budget-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); align-items: start; }













.budget-section > h2 { margin: 0 0 var(--space-1); font-size: var(--fs-figure); }










.section-head {
  




  display: flex; align-items: baseline; gap: 5px; flex-wrap: wrap;
  margin: 0 0 var(--space-1); font-size: var(--fs-figure);
}
.section-name { font-weight: 700; }






#kpi-budget-net { margin-left: auto; }
.section-head > strong {
  font-size: var(--fs-figure); font-weight: 700;
  font-variant-numeric: tabular-nums;
}


.section-pill {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.01em;
  padding: 2px 8px; border-radius: var(--radius-pill);
  background: var(--surface-2); color: var(--accent-line);
  text-transform: none; white-space: nowrap;
}

















@keyframes view-slide-in-right {
  from { opacity: 0; transform: translateX(100%); }
  to   { opacity: 1; transform: none; }
}
@keyframes view-slide-in-left {
  from { opacity: 0; transform: translateX(-100%); }
  to   { opacity: 1; transform: none; }
}
@keyframes view-slide-out-left {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateX(-100%); }
}
@keyframes view-slide-out-right {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateX(100%); }
}




.dashboard-view.is-leaving {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
}
.dashboard-view.is-leaving.to-left {
  animation: view-slide-out-left 420ms cubic-bezier(0.4, 0, 0.2, 1) both;
}
.dashboard-view.is-leaving.to-right {
  animation: view-slide-out-right 420ms cubic-bezier(0.4, 0, 0.2, 1) both;
}
.dashboard-view.is-entering.from-right {
  animation: view-slide-in-right 420ms cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
.dashboard-view.is-entering.from-left {
  animation: view-slide-in-left 420ms cubic-bezier(0.4, 0, 0.2, 1) backwards;
}

@keyframes view-enter {
  from { opacity: 0; transform: translateY(-28px); }
  to   { opacity: 1; transform: none; }
}
.dashboard-view.is-entering:not(.from-right):not(.from-left) {
  








  animation: view-enter 420ms cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
@media (prefers-reduced-motion: reduce) {
  







  .dashboard-view.is-entering,
  .dashboard-view.is-leaving,
  .dashboard-view.is-leaving.to-left,
  .dashboard-view.is-leaving.to-right,
  .dashboard-view.is-entering.from-right,
  .dashboard-view.is-entering.from-left { animation: none; }
}




.rs-filters {
  display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3);
  margin-bottom: var(--space-3);
}
.rs-filter { display: flex; flex-direction: column; gap: 4px; flex: 1 1 30%; }
.rs-filter > span {
  font-size: var(--fs-eyebrow); font-weight: 600; color: var(--muted);
  letter-spacing: .04em;
}








select {
  




  appearance: none; -webkit-appearance: none;
  font-size: 16px; padding: 8px 32px 8px 10px; min-height: 40px;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface); color: var(--ink);
  

  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238b9a94' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 12px 8px;
}


select option { color: var(--ink); background: var(--surface); }
.rs-summary {
  margin: 0 0 var(--space-2); color: var(--muted);
  font-size: var(--fs-eyebrow); font-weight: 600;
}
.rs-months { margin-top: var(--space-3); }










details.is-sliding {
  overflow: hidden;
  transition: height var(--slide-ms, 360ms) cubic-bezier(0.4, 0, 0.2, 1);
  







  contain: paint;
  will-change: height;
}
@media (prefers-reduced-motion: reduce) {
  details.is-sliding { transition: none; }
}







.surplus-history { margin: 0 0 18px; }
.bar-chart {
  display: flex; align-items: flex-end; gap: 10px;
  list-style: none; margin: 12px 0 0; padding: 0;
  

  overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.bar-col {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  flex: 0 0 auto; min-width: 52px;
}
.bar-col-track {
  display: flex; align-items: flex-end; justify-content: center;
  width: 30px; height: 96px;
  background: var(--bar-track); border-radius: var(--radius-pill);
  overflow: hidden;
}
.bar-col-track > i {
  display: block; width: 100%; background: var(--accent);
  border-radius: var(--radius-pill);
  


  height: 0;
  transition: height 720ms cubic-bezier(0.22, 0.61, 0.36, 1);
}


.bar-col.is-running .bar-col-track > i { opacity: .55; }
.bar-col.is-negative .bar-col-track > i { background: var(--danger); }
.bar-col-figure {
  font-size: var(--fs-eyebrow); font-weight: 700;
  font-variant-numeric: tabular-nums; color: var(--ink);
}
.bar-col-label {
  display: flex; flex-direction: column; align-items: center;
  font-size: var(--fs-eyebrow); color: var(--muted); font-weight: 600;
}
.bar-col-label > em { font-style: normal; opacity: .75; font-weight: 400; }

.surplus-panel {
  padding: var(--space-2) var(--space-3);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm), var(--raise-edge);
}
.surplus-panel .track-bar { margin: 0; }
.surplus-panel .track-balance {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 8px; margin-top: 4px;
}



.surplus-panel .track-balance > span {
  color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: 0.01em;
}
.surplus-panel .track-balance > strong {
  font-size: var(--fs-figure); font-weight: 700;
  font-variant-numeric: tabular-nums;
}

#view-payday > .cash-card + .cash-card,
#view-payday > .budget-section + .cash-card,
#view-payday > .cash-card + .budget-section { margin-top: 10px; }

.section-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 30px; padding: 0; border: 0; background: transparent;
  color: inherit; font: inherit; text-transform: inherit; cursor: pointer;
}
.section-caret {
  width: 0; height: 0;
  border-left: 5px solid currentColor;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  color: var(--muted);
  transition: transform var(--motion-fast) var(--ease);
}
.section-toggle[aria-expanded="true"] .section-caret { transform: rotate(90deg); }
.group-toggle .section-caret { display: inline-block; vertical-align: middle; }
.group-toggle[aria-expanded="true"] .section-caret { transform: rotate(90deg); }


.section-total {
  color: var(--muted); font-size: 13px; font-weight: 600;
  font-variant-numeric: tabular-nums; text-transform: none;
}
.section-toggle:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--radius-sm); }



.budget-bills-shell, .budget-income-shell { min-height: 0; }





.budget-bills-shell { max-height: calc(100dvh - 368px); }






#budget-bills-shell { min-height: 190px; }









#accounts-shell { padding-bottom: calc(36px + env(safe-area-inset-bottom, 0px)); }


.budget-income-shell { max-height: none; overflow-y: visible; }







@media (max-width: 360px) {
  



  
}





.budget-bills-table th:nth-child(3), .budget-bills-table td:nth-child(3) { max-width: 86px; }


.budget-income-table th:last-child, .budget-income-table td:last-child { width: 100%; }














.budget-income-table th, .budget-income-table td {
  padding-top: var(--income-row-pad, 6px); padding-bottom: var(--income-row-pad, 6px);
}
















.cash-card { --income-row-pad: 6px; }
.cash-card > .table-shell:last-child { margin-bottom: 0; }
.cash-card:has(> .budget-income-shell:last-child) {
  padding-bottom: calc(var(--space-4) - var(--income-row-pad));
}
#view-payday .deposit-rows { row-gap: 12px; }
#view-payday .surplus-panel .track-balance {
  margin-top: 13px;
  







  padding-left: var(--space-3);
}



.budget-income-table .income-group > td { font-weight: 700; }





.budget-income-table .income-person .account-name { font-weight: 700; }












.budget-income-table .income-child > td:first-child { padding-left: 20px; }







.budget-income-table .income-child .account-name { font-weight: 500; color: var(--muted); }










.budget-income-table .income-child:not(:last-child) > td { border-bottom: none; }
.budget-income-table .income-group > td { border-bottom: none; }



.budget-income-table tbody tr:last-child > td { border-bottom: none; }











.budget-income-table .income-person-cell {
  display: flex; align-items: baseline; gap: 8px;
  min-width: 0; width: 100%;
}


.budget-income-table .income-person-cell > .account-name {
  





  




  flex: 0 0 auto; min-width: 3.9ch;
}
.budget-income-table .income-person-cell .account-name {
  overflow: hidden; text-overflow: ellipsis;
}
.income-share-inline {
  font-variant-numeric: tabular-nums; font-weight: 700;
  color: var(--muted); white-space: nowrap;
}












.budget-income-table .income-toggle {
  





  position: absolute; left: -2px; top: 50%;
  transform: translateY(-50%);
  display: flex; align-items: center; justify-content: center;
  padding: 0; margin: 0; border: 0; background: none;
  width: 12px; height: 12px;
  cursor: pointer; color: inherit;
}
.budget-income-table .income-toggle:focus-visible {
  outline: 2px solid var(--focus); outline-offset: 2px;
  border-radius: var(--radius-sm);
}








.budget-income-table .income-toggle[aria-expanded="true"] .section-caret {
  transform: rotate(90deg);
}






.budget-income-table .income-group[aria-expanded="false"]:not(:last-child) > td {
  border-bottom: 1px solid var(--line);
}










.budget-income-table .income-group.is-collapsible { cursor: pointer; }
.budget-income-table .income-group.is-collapsible:focus-visible {
  outline: 2px solid var(--accent); outline-offset: -2px;
}













.budget-income-table tr.income-child > td:first-child .account-name,
.budget-income-table tr.income-person > td:first-child .account-name {
  display: inline; white-space: nowrap;
}




.budget-income-table tr.income-child > td:first-child,
.budget-income-table tr.income-person > td:first-child {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}














.budget-income-shell {
  border: 0;
  background: none;
  box-shadow: none;
}
.budget-income-table th:last-child, .budget-income-table td:last-child {
  padding-right: var(--table-gutter-right);
}
























@media (min-width: 601px) {
  .budget-bills-table { table-layout: fixed; }
  .budget-bills-table th:nth-child(2), .budget-bills-table td:nth-child(2) { width: 104px; }
  


  .budget-bills-table th:nth-child(3), .budget-bills-table td:nth-child(3) { width: 108px; }
  .budget-bills-table th:nth-child(4), .budget-bills-table td:nth-child(4) { width: 116px; }
  .budget-bills-table th:nth-child(5), .budget-bills-table td:nth-child(5) { width: 96px; }
  .budget-bills-table th:nth-child(6), .budget-bills-table td:nth-child(6) { width: 112px; }
}
.budget-bills-table { min-width: 720px; }


.budget-bills-table .account-name { max-width: none; display: inline; }

.budget-income-table { min-width: 520px; }





.budget-food { display: flex; align-items: center; gap: var(--space-5); margin: var(--space-2) 0 var(--space-3); padding: var(--space-2) var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-sm), var(--raise-edge); }


.budget-food-status[hidden] { display: none; }




.rollup-band {
  display: flex; flex-wrap: wrap; gap: var(--space-2);
  margin: 0 0 var(--space-2);
}
.rollup-band[hidden] { display: none; }


@media (max-width: 600px) {
  .rollup-band { flex-wrap: nowrap; gap: 5px; }
  .rollup-item { padding: 4px 8px; gap: 5px; min-width: 0; }
  .rollup-item > span { font-size: var(--fs-eyebrow); }
  .rollup-item > strong { font-size: 12px; }
}











.projection-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; margin: var(--space-3) 0 4px;
}
.projection-head > .projection-heading { margin: 0; }
.projection-head-action-only { justify-content: flex-end; }





.projection-heading {
  margin: var(--space-3) 0 4px; font-size: var(--fs-eyebrow);
  font-weight: 700; letter-spacing: 0.01em;
  color: var(--muted);
}

.txn-link-row { margin: 8px 0 0; }




.txn-link-row-lead { margin-bottom: 14px; }
.link-chevron { display: inline; margin-left: 4px; font-weight: 700; color: inherit; }

















.txn-link-row-pair { display: flex; align-items: baseline; gap: 12px;
  flex-wrap: wrap; justify-content: space-between; }
.txn-month { border-top: 1px solid var(--line); padding: 8px 0; }
.txn-month > summary {
  



  display: flex; align-items: baseline; justify-content: flex-start;
  gap: 8px; cursor: pointer; font-size: 13px; font-weight: 700;
  list-style: none;
}
















.txn-row.txn-head {
  



  grid-template-columns: 44px minmax(0, 1fr) var(--txn-chip, 64px) 80.16px 53.44px;
}
.txn-head {
  




  





  font-weight: 600;
  color: var(--muted); text-transform: none;
  border-bottom: 1px solid var(--line); padding-bottom: 3px; margin-bottom: 1px;
  cursor: default;
}







.txn-row.txn-head > * { font-weight: 600; color: var(--muted); font-size: 10px;
                        letter-spacing: .04em; }




.txn-month > summary strong {
  font-weight: 700; font-variant-numeric: tabular-nums;
}
.txn-month > summary::-webkit-details-marker { display: none; }
.txn-month > summary::before { content: "\25B8"; margin-right: 6px; color: var(--muted); }
.txn-month[open] > summary::before { content: "\25BE"; }



.txn-row {
  


  



  display: grid;
  










  








  



  




  









  


  grid-template-columns: 44px minmax(0, 1fr) var(--txn-chip, 64px) 9ch 6ch;
  








  



  




  align-items: center; gap: 3px; padding: 3px 0;
}









#personal-txn-body .txn-row,
.txn-list-no-tagging .txn-row {
  grid-template-columns: auto minmax(7ch, 1fr) auto auto;
}



















.txn-row.is-pending .txn-name { grid-column: 2 / span 2; }
.txn-row.is-pending .txn-chips { display: none; }
.txn-row + .txn-row { border-top: 1px solid var(--line); }


@media (max-width: 600px) {
  .txn-row,
  #personal-txn-body .txn-row,
  .txn-list-no-tagging .txn-row {
    grid-template-columns: 44px minmax(0, 1fr) 9ch 6ch;
    grid-template-areas: "date desc amount balance" "date chips chips chips";
    row-gap: 0;
  }
  .txn-date { grid-area: date; align-self: start; padding-top: 1px; }
  .txn-name { grid-area: desc; }
  .txn-row .txn-chips { grid-area: chips; justify-self: start; margin-top: 2px; }
  .txn-row .txn-amount { grid-area: amount; justify-self: end; }
  .txn-row .txn-balance {
    grid-area: balance; justify-self: end; margin-top: 0; margin-left: 0;
  }
  .txn-row.txn-head {
    
    font-weight: inherit;
    font-size: inherit;
    grid-template-columns: 44px minmax(0, 1fr) 9ch 6ch;
    grid-template-areas: "date desc amount balance";
  }
  .txn-row.txn-head > * { font-size: 11px; }
  .txn-head .txn-chips { display: none; }
  .txn-row.txn-head .txn-balance { display: block; }
  .txn-row.is-pending .txn-name { grid-column: auto; }
}








.txn-row.txn-head + .txn-row { border-top: none; }










.txn-month:first-child { border-top: none; }



.txn-row[data-open-txn] { cursor: pointer; }
.txn-row[data-open-txn]:focus-visible {
  outline: 2px solid var(--focus); outline-offset: -2px; border-radius: 6px;
}
@media (hover: hover) {
  .txn-row[data-open-txn]:hover { background: var(--surface-2); }
}
.txn-date {
  font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.txn-name {
  




















  





  font-size: 13px;
  display: flex; align-items: center; gap: 5px;
}
.txn-text {
  


  flex: 1 1 auto; min-width: 0;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  



}





.txn-flag.is-external { color: var(--muted); background: var(--group); font-style: normal; }



.txn-flag.is-oneoff { color: var(--muted); background: var(--group); font-style: normal; }


.txn-flag.is-split { color: var(--muted); background: var(--group); font-style: normal; }
.txn-detail-check { display: flex; align-items: center; gap: 8px; }






.txn-split { display: flex; flex-direction: column; gap: 6px; }
.txn-split-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
}
.txn-split-head[hidden] { display: none; }


.txn-split-left { color: var(--muted); font-size: 0.85em; }


.txn-split-left.is-over { color: var(--warning); }












.txn-split-row {
  display: grid;
  grid-template-columns:
    calc(9ch + 22px) minmax(0, 1fr) minmax(0, 1fr) 1.25em;
  gap: 6px; align-items: center;
}
.txn-split-row > * { min-width: 0; }


.txn-split-row .txn-split-amount { padding-inline: 10px; }


.txn-split-row select {
  text-overflow: ellipsis;
}


.txn-split-row .txn-split-amount { text-align: right; }






.txn-split-row .txn-split-amount[readonly] {
  color: var(--muted); font-weight: 600;
  background: var(--group);
}
.txn-split-drop {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: var(--muted); font-size: 1.1em; line-height: 1;
}

.txn-split-drop-gap { display: block; }
.txn-split-actions { display: flex; gap: 12px; }


.txn-detail-check input {
  width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--accent);
}


.txn-flag {
  flex: 0 0 auto; font-style: normal; white-space: nowrap;
  color: var(--warning); background: var(--warning-soft);
}
.txn-amount {
  font-size: 13px; font-variant-numeric: tabular-nums;
  














  text-align: right; min-width: 9ch; white-space: nowrap;
}




.txn-balance {
  font-size: 13px; font-variant-numeric: tabular-nums; color: var(--muted);
  








  text-align: right; min-width: 6ch; margin-left: 4px; white-space: nowrap;
}



.txn-row.is-pending .txn-amount { font-style: italic; }



.txn-chips {
  










  display: inline-flex; flex: 0 0 auto;
  








  






  min-width: 0; max-width: 100%; overflow: hidden;
  










  justify-self: end;
  







}

.txn-chip {
  font-size: var(--fs-eyebrow); font-weight: 700; padding: 6px 7px; min-height: 26px;
  border: 0; border-left: 1px solid var(--line);
  background: none; color: var(--muted); cursor: pointer; white-space: nowrap;
}
.txn-chip.is-on { background: var(--accent-soft, var(--surface-2)); color: var(--accent); }




.txn-chip.is-on.is-manual { background: var(--accent); color: var(--surface); }

.txn-rules { margin-top: var(--space-3); font-size: 12px; }
.txn-rules > summary { cursor: pointer; font-weight: 600; color: var(--muted); }




#txn-rules { font-size: 12px; }





.txn-rule { display: flex; align-items: baseline; justify-content: space-between;
  gap: 8px; padding: 4px 0; }
.txn-rule-what { min-width: 0; }
.txn-rule-actions { display: flex; align-items: baseline; gap: 10px;
  flex: 0 0 auto; }


.txn-rule-scope { color: var(--muted); }








.cad-actual { color: var(--muted); font-weight: 600; font-size: 12px; margin-left: 8px; }


.kpi-pace:empty { display: none; }

.tracks-stamp {
  margin: 0 0 4px; font-size: 11px; color: var(--muted); text-align: right;
}

.deposit-panel {
  



  padding: var(--space-2) 7px;
  background: var(--surface);
  

  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}
.deposit-panel[hidden] { display: none; }




.deposit-more {
  font-size: var(--fs-caption); font-weight: 600;
  margin-left: auto; padding-left: var(--space-3);
}













.section-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: var(--space-3, 12px);
  margin-left: auto;
}






.section-actions > .deposit-more { margin-left: 0; margin-right: 0; }
.section-actions > .deposit-more:last-child { margin-right: -8px; }



.schedule-day { padding: 0 0 var(--space-4, 20px); }
.schedule-day + .schedule-day {
  
  border-top: 1px solid var(--line);
  margin-top: var(--space-3);
  padding-top: var(--space-4, 20px);
}
.schedule-day .deposit-head { align-items: baseline; margin-bottom: 2px; }
.schedule-day .deposit-head > span {
  font-size: var(--fs-figure); font-weight: 700; color: var(--ink);
  letter-spacing: 0.01em; text-transform: none;
}



.schedule-day .deposit-head > strong { font-size: var(--fs-figure); margin-left: auto; }

.schedule-day.is-next .deposit-head > span,
.schedule-day.is-next .deposit-head > strong { color: var(--accent); }

.schedule-day .deposit-rows {
  margin-top: 6px; padding-top: 6px;
  





  column-gap: 12px;
}



.schedule-day .deposit-row > em,
.schedule-day .deposit-row > .deposit-due { justify-self: end; text-align: right; }











#schedule-body .deposit-group,
#schedule-body .deposit-incoming { padding-left: 12px; padding-right: 12px; }












@supports (grid-template-columns: subgrid) {
  





  #schedule-body,
  #schedule-history-body {
    display: grid;
    grid-template-columns: minmax(6ch, 1fr) max-content max-content;
    





    column-gap: 12px;
  }
  #schedule-body > .schedule-day,
  #schedule-history-body > .schedule-day,
  #schedule-body .deposit-group,
  #schedule-history-body .deposit-group,
  #schedule-body .deposit-incoming,
  #schedule-history-body .deposit-incoming,
  #schedule-body .deposit-rows,
  #schedule-history-body .deposit-rows {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1 / -1;
  }
  
  #schedule-body .deposit-head,
  #schedule-history-body .deposit-head,
  #schedule-body .deposit-incoming-head,
  #schedule-history-body .deposit-incoming-head,
  #schedule-body .schedule-short,
  #schedule-history-body .schedule-short,
  #schedule-body .deposit-group > p,
  #schedule-history-body .deposit-group > p,
  #schedule-body > .schedule-day > p,
  #schedule-history-body > .schedule-day > p {
    grid-column: 1 / -1;
  }
  

  #schedule-body .deposit-rows,
  #schedule-history-body .deposit-rows { row-gap: 3px; }
}





.deposit-due {
  flex: 0 0 auto; font-style: normal; font-size: var(--fs-caption); color: var(--muted);
  


  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.deposit-head {
  


  display: flex; align-items: baseline; gap: 4px;
}
.deposit-head > span { flex: 0 0 auto; }
.deposit-head > span {
  color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: 0.01em;
}










#deposit-plan-title {
  margin-right: 2px;
}


.deposit-head > strong {
  font-size: var(--fs-figure); font-weight: 700; font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.deposit-rows {
  display: flex; flex-direction: column; gap: 3px;
  margin: 8px 0 0; padding: 8px 0 0;
  border-top: 1px solid var(--line);
}








.deposit-rows {
  display: grid;
  




  grid-template-columns: minmax(6ch, 1fr) max-content max-content;
  align-items: baseline;
  






  column-gap: 4px;
}



























@media (max-width: 360px) {
  .deposit-rows { grid-template-columns: minmax(0, 1fr) max-content; }
  .deposit-row > span:first-child { grid-column: 1 / -1; }
  #schedule-body .deposit-row > span:first-child { grid-column: auto; }
}
.deposit-row {
  display: contents;
}




.deposit-row > span {
  flex: 1 1 auto; min-width: 0;
  font-size: var(--fs-eyebrow); font-weight: 600; color: var(--muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.deposit-row > strong {
  flex: 0 0 auto; font-size: var(--fs-figure); font-weight: 700;
  font-variant-numeric: tabular-nums;
  













  justify-self: end; text-align: right;
  padding-left: 6px;
}



.dialog-flags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 var(--space-3); }
.dialog-flags[hidden] { display: none; }







#alerts-tip { width: min(340px, calc(100vw - 32px)); }









.balance-held {
  display: block; font-size: var(--fs-eyebrow); font-weight: 500;
  color: var(--muted); white-space: nowrap;
}





.track-spent { position: relative; height: 15px; margin-top: 2px; }




.track-week-now.is-over { color: var(--bar-week-over-edge); font-weight: 700; }


.track-inline-note {
  










  grid-column: 1 / -1; justify-self: start; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; max-width: 100%;
}









.track-inline-note.projection-awaiting {
  white-space: normal; overflow: visible; text-overflow: clip;
  line-height: 1.35;
}

.track-week-now {
  grid-column: 2; justify-self: start;
  font-size: var(--fs-eyebrow); color: var(--muted);
  white-space: nowrap; min-width: 0; overflow: hidden;
}







.track-week-now.is-surplus { justify-self: end; }














.track-head > .kpi-pace:not(.track-inline-note) {
  grid-column: 3; justify-self: end;
  margin-top: 0; text-align: right;
}
.track-head > .track-inline-note { margin-top: 0; }

.track-spent > span {
  position: absolute; top: 0; white-space: nowrap;
  font-size: 11px; font-variant-numeric: tabular-nums; color: var(--ink);
}









.track-spent .pace-inline { font-weight: 600; }
.track-spent .pace-inline.is-ok { color: var(--success); }
.track-spent .pace-inline.is-warn { color: var(--warning); }
.track-spent .pace-inline.is-high { color: var(--caution); }
.track-spent .pace-inline.is-over { color: var(--danger); }


















@media (min-width: 601px) and (max-width: 639px) {
  #track-disc:has(> .track-outlook:not([hidden])) .track-spent .pace-inline { display: none; }
}
.track-week.is-over .track-week-figure { color: var(--danger); }



.sb-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding: 7px 0; font-size: var(--fs-figure);
}
.sb-label { min-width: 0; }
.sb-value { white-space: nowrap; font-variant-numeric: tabular-nums; }

.sb-group { padding-left: 12px; border-left: 2px solid var(--line); margin: 2px 0; }
.sb-row.is-subtotal { border-top: 1px solid var(--line); font-weight: 600; }






.sb-section {
  padding: var(--space-2) var(--space-3);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm), var(--raise-edge);
}
.sb-section + .sb-section { margin-top: 10px; }
@media (max-width: 600px) {
  

  .sb-section { padding: 6px var(--space-2); }
}




.sb-head {
  margin: 0 0 2px; font-size: var(--fs-eyebrow); font-weight: 700;
  letter-spacing: 0.01em; color: var(--muted);
}




.sb-section .sb-row.is-subtotal {
  border-top: 2px solid var(--accent-line);
}


.sb-section + .sb-row.is-total { margin-top: 14px; }
.sb-row.is-total {
  border-top: 2px solid var(--accent-line); font-weight: 700; font-size: 16px;
}




.is-openable { cursor: pointer; }
.is-openable:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.floor-list {
  display: grid; gap: 6px; margin: 0 0 var(--space-2);
  




  min-width: min(100%, 300px);
}














#lock-grace-state { color: var(--accent-line); font-size: var(--fs-eyebrow); }

.numpad { margin-top: var(--space-3); }
.numpad[hidden] { display: none; }
.numpad-keys {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
}
.numpad-key {
  min-height: 42px; padding: 0;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface-2, var(--group)); color: var(--ink);
  font: inherit; font-size: var(--fs-figure); font-weight: 600;
  font-variant-numeric: tabular-nums; cursor: pointer;
}
.numpad-key:active { background: var(--group); }
.numpad-done { width: 100%; margin-top: 6px; min-height: 40px; }


.floor-input.is-editing {
  border-color: var(--accent); box-shadow: 0 0 0 2px rgba(62, 190, 157, 0.25);
}







.floor-block {
  display: grid; gap: 1px;
  margin-bottom: 4px; padding: 1px 6px 3px;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface-2, var(--group));
}

.floor-block > .floor-name {
  font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em;
  color: var(--muted); text-align: left; line-height: 1.3;
}





.floor-block .floor-input {
  background: var(--surface); font-weight: 700; color: var(--ink);
}


.floor-alert input { width: 17px; height: 17px; accent-color: var(--accent); }




.floor-head {
  display: grid; grid-template-columns: 1fr 1fr 1fr 44px; gap: 6px;
  

  padding: 0 6px;
  



  font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em;
  color: var(--muted); text-align: right;
  


  margin-top: var(--space-2); padding-bottom: 2px;
}

.floor-head span:last-child { text-align: center; }






.floor-block .floor-name {
  min-width: 0; font-size: 12px; color: var(--ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.floor-input {
  width: 100%; min-width: 0; text-align: right;
  



  font: inherit; font-variant-numeric: tabular-nums;
  



  padding: 1px 8px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
}





.bill-pill {
  flex: 0 0 auto;
  letter-spacing: 0.02em;
}




button.bill-pill { font-family: inherit; cursor: pointer; }
.bill-pill.is-paid { background: var(--success-soft); color: var(--success); }



.bill-pill.is-pending { background: var(--surface-2); color: var(--muted); }
.bill-pill.is-overdue { background: var(--danger-soft); color: var(--danger); }







.bill-pill.is-not-due {
  background: none; color: var(--muted); border-color: transparent;
  font-style: italic;
}





.bill-pill.is-card { background: var(--surface-2); color: var(--muted); }

.bill-pill.is-proposed {
  background: var(--warning-soft); color: var(--warning-strong);
  border-color: var(--warning); cursor: pointer;
}
.bill-pill.is-proposed:hover { filter: brightness(1.05); }



.bill-pill.is-paid { cursor: pointer; }
.bill-pill.is-paid:hover { filter: brightness(1.05); }






.projection-table td.wrap-cell {
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
  overflow: visible;
  max-width: none;
  line-height: 1.4;
}

.rollup-item.is-over { border-color: var(--warning); }
.rollup-item.is-over > strong { color: var(--warning-strong, var(--warning)); }






#history-breakdown { flex-wrap: wrap; row-gap: 6px; }

.rollup-item.is-total { border-color: var(--accent-line); }
.rollup-item.is-total > strong { color: var(--ink); }




.flow-tag {
  display: inline-block; padding: 1px 7px; border-radius: var(--radius-pill);
  font-size: 11px; font-weight: 600; white-space: nowrap;
  background: var(--tab-count-bg); color: var(--muted);
}
.flow-tag.is-repay { color: var(--success); }








.budget-tracks {
  display: grid; gap: 8px;
  margin-bottom: var(--space-3);
}
.budget-tracks > .track {
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm), var(--raise-edge);
}




.cash-card {
  



  margin-top: var(--space-5);
  margin-bottom: var(--space-3);
  






  padding: var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: var(--shadow-sm), var(--raise-edge);
  overflow: hidden;
}






#heloc-split-rows .txn-split-row {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 1.25em;
}

.track {
  display: grid;
  





  grid-template-columns: minmax(24ch, 0.9fr) minmax(0, 2fr) minmax(96px, 0.7fr);
  






  align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  background: var(--surface);
}





.track-head {
  


  

  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1px 8px; min-width: 0; align-items: baseline;
  








  overflow: hidden;
}
.track-head > span:first-child { grid-column: 1 / -1; }
.track-head-main { grid-column: 1; }
.track-head > strong { grid-column: 1; }




.track-mask { font-style: normal; font-weight: 500; opacity: .6; margin-left: 4px;
              font-size: var(--fs-eyebrow); letter-spacing: 0; }
.track-head > span { color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em; }








.track-head > span:first-child,
.track-head-main > span:first-child {
  color: var(--ink); font-size: var(--fs-figure); font-weight: 700;
  letter-spacing: -0.01em;
}






.track-head > strong {
  




  font-size: var(--fs-eyebrow); font-weight: 600; color: var(--muted);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.track-bar { display: grid; gap: 2px; min-width: 0; position: relative; }





.track-balance { display: grid; gap: 1px; justify-items: end; text-align: right; min-width: 0; }
.track-balance > span { color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600; }
.track-balance > strong { font-size: var(--fs-figure); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }


.track-stamp { color: var(--muted); font-size: var(--fs-eyebrow); white-space: nowrap; }


.track.is-summary { background: var(--surface-2); }























@media (min-width: 601px) {
  .track > .track-head { grid-column: 1; grid-row: 1; }
  .track > .track-bar { grid-column: 2; grid-row: 1; }
  .track > .track-balance { grid-column: 3; grid-row: 1; }
  .track > .track-spent { grid-column: 2; grid-row: 2; }
  

  .track > .track-outlook { grid-column: 2; grid-row: 2; align-self: center; }
}








.track { overflow: clip; }
.track.is-openable { cursor: pointer; position: relative; padding-right: 24px; }
.track.is-openable::after {
  content: "\203A";                 
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  color: var(--muted); font-size: 19px; line-height: 1; opacity: .75;
  pointer-events: none;
}
.track.is-openable:hover { background: var(--surface-2); }
.track.is-openable:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }





.projection-table { width: 100%; margin-top: var(--space-2); table-layout: auto; }
.projection-table th:first-child, .projection-table td:first-child {
  


  width: 1%; min-width: 3.9rem; white-space: nowrap; padding-right: 10px;
}






.projection-table th:nth-child(2):not(.number),
.projection-table td:nth-child(2):not(.number) {
  width: 100%; max-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.projection-table th.number, .projection-table td.number {
  width: 1%; white-space: nowrap; padding-left: 8px;
}



#history-table th:first-child, #history-table td:first-child {
  







  min-width: 6.4rem;
}


#history-table td:first-child { white-space: nowrap; }
#history-table td:first-child > .account-id { display: block; }





.projection-table td.is-below { color: var(--danger); font-weight: 700; }














#account-dialog-projection .joint-detail-strip {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
}

#account-dialog-projection .joint-detail-strip > div {
  border-bottom: 0;
  border-right: 1px solid var(--line);
}
#account-dialog-projection .joint-detail-strip > div:last-child { border-right: 0; }





#account-dialog-projection .joint-detail-strip.is-one-up > div { border-right: 0; }



.tile-edit {
  appearance: none; border: 0; background: none; cursor: pointer;
  padding: 0; margin-left: 8px;
  font: inherit; font-size: 11px; font-weight: 600;
  color: var(--accent);
}
.floor-form[hidden] { display: none; }







.floor-form {
  display: flex; flex-wrap: wrap; align-items: end;
  gap: var(--space-2); margin: var(--space-2) 0;
}
.floor-form label { flex: 1 1 100%; }
@media (min-width: 360px) {
  .floor-form { flex-wrap: nowrap; }
  .floor-form label { flex: 1 1 auto; }
}
.floor-form label { flex: 1 1 auto; min-width: 0; }
.floor-form .button { flex: 0 0 auto; white-space: nowrap; }
.floor-form #projection-floor-state { flex: 0 0 auto; }
.floor-form label { display: grid; gap: 3px; color: var(--muted); font-size: 11px; }
.floor-form input {
  



  width: 100%; min-width: 0;
  min-height: 34px; padding: 6px 8px;
  border: 1px solid var(--input-border); border-radius: 4px;
  background: var(--input-bg); color: var(--ink);
}
#projection-floor-state { color: var(--muted); font-size: 12px; }
.track.is-summary .track-bar { align-self: center; }
@media (max-width: 600px) {
  




  .track {
    grid-template-columns: minmax(0, 1fr) auto;
    







    grid-template-areas: "head balance" "bar bar" "spent spent";
    


    gap: 4px var(--space-3); padding: var(--space-3);
  }
  
















  .track-head { grid-area: head; align-self: baseline; }
  .track-balance { grid-area: balance; justify-items: end; align-self: baseline; }
  .track-bar { grid-area: bar; }
  








  .track-spent { grid-area: spent; }
  

  






  .track-outlook { grid-area: spent; justify-self: start; align-self: center;
                   text-align: left; }
  



















  



}







.kpi-budget .bar, .track .bar {
  position: relative; display: block; height: 8px; margin: 6px 0 4px;
  border-radius: var(--radius-pill); overflow: hidden;
  background: var(--bar-track);
}
















.kpi-budget .bar s, .track .bar s {
  position: absolute; top: 0; bottom: 0; width: 0; z-index: 0;
  background: var(--warning);
  transition: width var(--motion-base) var(--ease), left var(--motion-base) var(--ease);
}
.kpi-budget .bar s[hidden], .track .bar s[hidden] { display: none; }
.kpi-budget .bar.has-weeks::before, .track .bar.has-weeks::before {
  content: ""; position: absolute; inset: 0 20% 0 0; z-index: 1;
  pointer-events: none;
  





  background:
    



    linear-gradient(to right,
      transparent 0 var(--wk-a, 0%),
      var(--bar-week-now) var(--wk-a, 0%) var(--wk-b, 0%),
      transparent var(--wk-b, 0%) 100%),
    


    var(--week-lines, none);
}





.kpi-budget .bar i, .track .bar i {
  



  position: absolute; inset: 0 auto 0 0; width: 0; opacity: 1; z-index: 0;
  









  transition: width 720ms cubic-bezier(0.22, 0.61, 0.36, 1);
  border-radius: var(--radius-pill);
  background: var(--success);   
  








  background-image: linear-gradient(90deg,
    rgba(255, 255, 255, .10) 0%,
    rgba(255, 255, 255, 0) 45%,
    rgba(0, 0, 0, .12) 100%);
  transition: width var(--motion-base) var(--ease), background var(--motion-base) var(--ease);
}




.kpi-budget .bar b, .track .bar b {
  position: absolute; top: 0; bottom: 0; width: 0; z-index: 0;
  




  background: linear-gradient(90deg, var(--caution) 0%, var(--bar-over) 62%);
  border-radius: 0 var(--radius-pill) var(--radius-pill) 0;
  transition: width var(--motion-base) var(--ease);
}


.kpi-budget .bar::after, .track .bar::after {
  content: ""; position: absolute; top: -2px; bottom: -2px; left: 80%;
  width: 2px; z-index: 2;
  background: var(--surface);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
}












.kpi-budget .bar u, .track .bar u {
  
















  position: absolute; top: 0; bottom: 0; width: 2px;
  



  background: var(--ink); opacity: .9; border-radius: 1px;
}


.kpi-budget .bar u[hidden], .track .bar u[hidden] { display: none; }





.kpi-budget .bar.bar-runway u, .track .bar.bar-runway u {
  top: 0; bottom: 0; width: 2px; background: var(--ink); opacity: .9;
}

.kpi-budget .bar.bar-runway i, .track .bar.bar-runway i { opacity: 1; }







.kpi-budget .bar.bar-runway b, .track .bar.bar-runway b {
  border-radius: 0 var(--radius-pill) var(--radius-pill) 0;
}
.kpi-budget .bar.bar-runway b[hidden], .track .bar.bar-runway b[hidden] {
  display: none;
}




.kpi-budget .bar-ghost, .track .bar-ghost { visibility: hidden; }
.kpi-budget .bar.is-idle u, .track .bar.is-idle u { display: none; }





.kpi-pace .pace-extra { opacity: .72; font-weight: 500; }





.kpi-strip .nm-full { display: inline; }
.kpi-strip .nm-short { display: none; }
.kpi-pace span { display: inline; text-transform: none; }



.kpi-pace .nm-short { display: none; }
.kpi-pace .nm-full { display: inline; }





.budget-heloc-stat {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-1) var(--space-3);
  margin-bottom: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent-line);
  border-radius: var(--radius-md);
  background: var(--surface-2);
  box-shadow: var(--shadow-sm), var(--raise-edge);
}









#view-bills .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }



.kpi-pace { display: block; margin-top: 2px; font-size: 11px; font-weight: 600; color: var(--muted); white-space: nowrap; text-transform: none; }
.kpi-pace.is-ok { color: var(--success); }
.kpi-pace.is-warn { color: var(--warning); }


.kpi-pace.is-high { color: var(--caution); }





.track-head > strong.budget-figure.is-warn { color: var(--warning); }
.track-head > strong.budget-figure.is-high { color: var(--caution); }
.track-head > strong.budget-figure.is-over { color: var(--danger); }


#kpi-budget-food-month.food-pace.is-ok { color: var(--success); }
#kpi-budget-food-month.food-pace.is-warn { color: var(--warning); }
#kpi-budget-food-month.food-pace.is-high { color: var(--caution); }
#kpi-budget-food-month.food-pace.is-over { color: var(--danger); }
.kpi-pace.is-over { color: var(--danger); }






.kpi-estact .kpi-sub { font-size: 11px; margin-left: var(--space-1); }


.budget-panels { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-3); margin: var(--space-2) 0 var(--space-4); }

.budget-panel > h2 { margin: 0 0 var(--space-1); font-size: var(--fs-figure); }

.pill.wife { color: var(--accent-line); background: var(--group-nested); border: 1px solid var(--line); }

dialog {
  width: min(980px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  



  margin-top: 16px;
  margin-bottom: auto;
  padding: 0;
  border: 1px solid var(--dialog-border);
  border-radius: 6px;
  box-shadow: var(--shadow);
  color: var(--ink);
  background: var(--surface);
}
















dialog::backdrop {
  background: var(--backdrop);
  backdrop-filter: blur(14px) saturate(0.9);
  -webkit-backdrop-filter: blur(14px) saturate(0.9);
}
.dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 16px 10px; border-bottom: 1px solid var(--line); }
.dialog-header h2 { margin: 1px 0 0; font-size: 20px; letter-spacing: 0; }
.eyebrow { color: var(--muted); font-size: 11px; }








.icon-button {
  width: 34px; height: 34px; border: 1px solid transparent;
  border-radius: var(--radius-sm); background: none; color: var(--muted);
  font-size: 15px; line-height: 1;
}
.icon-button:hover, .icon-button:focus-visible {
  background: var(--btn-secondary-bg); color: var(--ink);
  border-color: var(--btn-secondary-border);
}
.tabs { display: flex; gap: 0; overflow-x: auto; border-bottom: 1px solid var(--line); padding: 0 12px; }
.tab { border: 0; border-bottom: 3px solid transparent; background: var(--surface); padding: 10px 12px 8px; color: var(--muted); }
.tab.active { color: var(--ink); border-bottom-color: var(--accent-line); font-weight: 700; }











#surplus-dialog .dialog-content,
























.dialog-content { overflow: auto; max-height: calc(100vh - 150px);
  max-height: calc(100dvh - 150px); padding-inline: var(--space-4); }



.dialog-content > .tab-panel,
.dialog-content > .dialog-flush { padding-inline: 0; }
.tab-panel { display: none; padding: var(--space-4); }
.tab-panel.active { display: block; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.form-grid label { display: grid; align-content: start; gap: 3px; color: var(--muted); font-size: 11px; }
.form-grid label.wide { grid-column: 1 / -1; }
.form-grid textarea { resize: vertical; }






.joint-detail-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 0; }
.joint-detail-list > div { display: grid; align-content: start; gap: 3px; min-width: 0; }
.joint-detail-list > div.wide { grid-column: 1 / -1; }


.joint-detail-list > div[hidden] { display: none; }
.joint-detail-strip > div[hidden] { display: none; }




#joint-dialog .joint-detail-strip {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
}
.joint-detail-list dt { color: var(--muted); font-size: 11px; }
.joint-detail-list dd {
  margin: 0;
  min-height: 34px;
  padding: 6px 8px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: var(--surface-2);
  color: var(--ink);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.joint-detail-list > div.wide dd { font-weight: 500; white-space: pre-wrap; }
.joint-detail-note { margin: 0 0 var(--space-2); color: var(--muted); font-size: 12px; }


.joint-detail-note.is-proposed {
  padding: 6px var(--space-3);
  border-left: 3px solid var(--warning);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  color: var(--ink); font-weight: 600;
}
.joint-detail-source {
  margin: var(--space-3) 0 0; padding-top: var(--space-2);
  border-top: 1px solid var(--line);
  color: var(--muted); font-size: 11px;
}

.joint-detail-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-top: 14px; }
#save-state { color: var(--muted); font-size: 12px; }
.subform { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.subform h3 { margin: 0 0 10px; font-size: var(--fs-figure); }
.record-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.record { padding: 10px 4px; border-bottom: 1px solid var(--line); }
.record h3 { margin: 0; font-size: var(--fs-figure); }
.record-meta { color: var(--muted); font-size: 11px; margin: 2px 0 5px; }
.record p { margin: 4px 0 0; white-space: pre-wrap; }
.record a { color: var(--link-fg); font-weight: 650; }
















.link-button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--link-fg);
  font-weight: 650;
  text-decoration: none;
}



.prose-link, p > a, .password-help a, .joint-detail-note a {
  text-decoration: underline; text-underline-offset: 2px;
}



.record-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
  padding: var(--space-5) var(--space-4);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface-alt);
  color: var(--muted);
  text-align: center;
  font-size: var(--fs-cell);
  

  margin-bottom: var(--space-3);
}
.record-empty::before {
  content: "\2014";
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--line);
  background: var(--surface);
  color: color-mix(in srgb, var(--muted) 65%, transparent);
  font-size: 18px;
  line-height: 1;
}
@supports not (color: color-mix(in srgb, red 50%, transparent)) {
  .record-empty::before { color: var(--muted); opacity: 0.7; }
}









#toast:popover-open, #toast { position: fixed; right: 18px; bottom: 18px; max-width: 360px; padding: 10px 12px; color: var(--toast-fg); background: var(--toast-bg); border-radius: 5px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .16s, transform .16s; }
#toast.visible { opacity: 1; transform: translateY(0); }
#toast { margin: 0; border: 0; overflow: visible; inset: auto 18px 18px auto; }
#toast::backdrop { background: transparent; }

@media (prefers-reduced-motion: reduce) {
  #toast { transition: none; }
}

@media (max-width: 900px) {
  .topbar { align-items: flex-start; padding: 12px 14px; }
  







  .top-actions { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
  main { padding: 10px; }
  .kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #view-bills .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kpi-strip > div { border-bottom: 1px solid var(--line); }
  .controls { align-items: stretch; }
  .controls label, .controls .button { flex: 1 1 145px; }
  .controls .search-field { flex-basis: 100%; }
  


  .track-head > strong { white-space: normal; }
  .controls input[type="search"] { min-width: 0; width: 100%; }
  




  




  


  .kpi-strip { position: static; }
  th { top: var(--chrome-h, 122px); }
  .group-row td { top: calc(var(--chrome-h, 122px) + 28px); }
  .group-row.nested td { top: calc(var(--chrome-h, 122px) + 56px); }
  .form-grid, .joint-detail-list { grid-template-columns: 1fr 1fr; }
  



  dialog .joint-detail-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  dialog .joint-detail-strip:not(.is-three-up) > div:nth-child(2n) { border-right: 0; }
  .terms-band dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  
  #strategy-heloc-terms > div:last-child { grid-column: 1 / -1; }
}




.kpi-why { margin: 2px 0 0; display: grid; gap: 2px; }


.kpi-why-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  


  padding: 0 8px 0 12px;
}
.kpi-why-row > span, .kpi-why-row > strong {
  font-size: var(--fs-eyebrow); font-weight: 600; color: var(--muted);
}
.kpi-why-row > strong { font-variant-numeric: tabular-nums; }
.kpi-why[hidden] { display: none; }



.track-sub {
  

  display: block; margin-top: 1px; font-size: var(--fs-eyebrow);
  font-weight: 600; color: var(--muted); letter-spacing: 0;
}
.track-sub[hidden] { display: none; }

.track-head-main { display: block; min-width: 0; }



@media (max-width: 360px) {
  #track-disc .track-week-now.is-surplus { grid-column: 1 / -1; justify-self: end; }
}





.track-weeks {
  position: relative; height: 1.1em; margin-top: 0;
  font-size: var(--fs-eyebrow); color: var(--muted);
  font-variant-numeric: tabular-nums;
}


.track-weeks > i {
  



  




  position: absolute; top: -6px; bottom: 0; width: 2px;
  background: var(--bar-week-line); transform: translateX(-100%);
}

.track-weeks > span {
  position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap;
}
.track-weeks[hidden] { display: none; }







#track-food { --bar-week-line: rgba(255, 255, 255, 0.62); }

@media (max-width: 600px) {
  


  .projection-table td:nth-child(2):not(.number) {
    max-width: none; white-space: normal; overflow-wrap: anywhere;
  }
  


  


  .kpi-strip strong { white-space: normal; overflow: visible; text-overflow: clip; }
  .kpi-estact > div { white-space: normal; }
  .kpi-pace { white-space: normal; }
  .budget-food { display: block; }
  .budget-food-body { flex: none; }
  .budget-food-figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--space-2); }
  .budget-bills-shell, .budget-income-shell { max-height: none; }
  .budget-heloc-stat { gap: 2px var(--space-2); }

  





  

  


  .topbar { flex-direction: row; align-items: center; gap: 8px; padding: 8px 14px; min-height: 0; }
  .top-actions { flex-direction: row; align-items: center; gap: 6px; flex-shrink: 0; }
  
  .brand-tagline { display: none; }
  

  .connection.online, .connection.pending { display: none; }
  .brand-mark { width: 24px; height: 24px; }

  


  .nm-full { display: none; }
  .nm-short { display: inline; }
  .settle-pct.nm-short { display: inline-block; margin-left: 4px; padding: 1px 4px; font-size: var(--fs-eyebrow); }
  .row-chevron { margin-left: 3px; }
  

  .kpi-strip .nm-full { display: none; }
  .kpi-strip .nm-short { display: inline; }
  .kpi-pace .nm-full { display: none; }
  .kpi-pace .nm-short { display: inline; }
  








  th:first-child, td:first-child { width: 100%; max-width: 0; }
  
  th:not(:first-child), td:not(:first-child) { width: 1%; white-space: nowrap; }
  .clip-cell, .collector { max-width: none; overflow: hidden; text-overflow: ellipsis; }
  



  .heloc-table th:first-child, .heloc-table td:first-child { width: 1%; max-width: none; }
  .heloc-table th:nth-child(3), .heloc-table td:nth-child(3) { width: 100%; max-width: 0; }
  









  .heloc-table th:nth-child(2), .heloc-table td:nth-child(2) {
    width: 1%; white-space: nowrap;
    

    padding-left: 4px; padding-right: 4px;
  }
  



  .heloc-table th, .heloc-table td { padding-left: 8px; padding-right: 8px; }
  




  main table, .budget-bills-table, .budget-income-table,
  .joint-debt-table, .heloc-table { min-width: 0; }
  

  .table-shell { max-height: none; overflow: visible; }

  
  




  













  #accounts-table th:not(:nth-child(1)):not(:nth-child(4)):not(:nth-child(9)),
  #accounts-table td:not(:nth-child(1)):not(:nth-child(4)):not(:nth-child(9)) { display: none; }
  
  #accounts-table th:first-child, #accounts-table td:first-child {
    width: 100%; min-width: 0; max-width: 0;
  }
  #accounts-table th:nth-child(4), #accounts-table td:nth-child(4),
  #accounts-table th:nth-child(9), #accounts-table td:nth-child(9) {
    width: 1%; max-width: none; white-space: nowrap;
  }
  


  #accounts-table td:first-child,
  #accounts-table td:first-child .account-name {
    white-space: normal; overflow-wrap: break-word; text-overflow: clip;
  }
  



  #accounts-table th:nth-child(4), #accounts-table td:nth-child(4),
  #accounts-table th:nth-child(9), #accounts-table td:nth-child(9) {
    padding-left: 6px; padding-right: 6px;
  }
  .row-chevron { display: inline; }

  





  








  





  .joint-debt-table th:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(5)):not(:nth-child(9)),
  .joint-debt-table td:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(5)):not(:nth-child(9)) { display: none; }
  



  .joint-debt-table th:nth-child(2), .joint-debt-table td:nth-child(2),
  .joint-debt-table th:nth-child(5), .joint-debt-table td:nth-child(5) {
    width: 1%; white-space: nowrap; padding-left: 6px; padding-right: 6px;
  }
  




  .joint-debt-table th:first-child, .joint-debt-table td:first-child {
    min-width: 0; width: 100%; max-width: 0;
  }
  .joint-debt-table th:last-child, .joint-debt-table td:last-child { width: 1%; }
  





  .joint-debt-table td:first-child,
  .joint-debt-table td:first-child .account-name {
    white-space: normal; overflow-wrap: break-word; text-overflow: clip;
  }
  





  .joint-debt-table td.go-cell, .joint-debt-table th:nth-child(9) { display: none; }
  






  .budget-bills-table th:nth-child(n + 5),
  .budget-bills-table td:nth-child(n + 5) { display: none; }
  





  


  













  .budget-bills-table .cadence-cell {
    display: flex; align-items: center; gap: 6px; width: 100%;
  }
  



  .budget-bills-table .bill-pill { margin-left: auto; }
  






  .budget-bills-table th:nth-child(3) { text-align: right; }
  


  .budget-bills-table .pill-slot-auto {
    flex: 0 0 auto; width: 2.9rem; display: flex; justify-content: flex-start;
  }
  

  .budget-bills-table td:first-child .name-cell { flex-wrap: nowrap; }
  





  .budget-bills-table th:nth-child(n + 2):nth-child(-n + 3),
  .budget-bills-table td:nth-child(n + 2):nth-child(-n + 3) {
    padding-left: 4px; padding-right: 4px;
  }
  





  





  






  .section-head { gap: 6px; }

  








  






  .section-head .section-actions > .deposit-more {
    padding-left: 2px; padding-right: 2px;
    min-width: 44px; justify-content: center;
  }
  

  .section-head > .section-pill { padding-left: 6px; padding-right: 6px; }
  





  .section-head .section-actions { gap: var(--space-3, 12px); }
  



  












  .budget-bills-table { table-layout: fixed; }
  .budget-bills-table th:first-child, .budget-bills-table td:first-child {
    width: 43%; min-width: 0;
  }
  .budget-bills-table th:nth-child(2), .budget-bills-table td:nth-child(2) { width: 18%; }
  





  











  .budget-bills-table th:nth-child(3), .budget-bills-table td:nth-child(3) { width: 21%; }
  






  .budget-bills-table th:nth-child(4), .budget-bills-table td:nth-child(4) { width: 18%; }
  .budget-bills-table th:nth-child(n + 2):nth-child(-n + 4),
  .budget-bills-table td:nth-child(n + 2):nth-child(-n + 4) {
    max-width: none; white-space: nowrap;
  }
  .budget-bills-table th:nth-child(n + 2):nth-child(-n + 3),
  .budget-bills-table td:nth-child(n + 2):nth-child(-n + 3) {
    padding-left: 6px; padding-right: 6px;
  }
  
  .budget-bills-table th:nth-child(4),
  .budget-bills-table td:nth-child(4) { padding-left: 14px; padding-right: 4px; }
  










  .budget-bills-table th:nth-child(2),
  .budget-bills-table td:nth-child(2) { text-align: left; }
  




  .budget-bills-table td:first-child .account-name { display: block; }
  



  .budget-bills-table td:first-child,
  .budget-bills-table td:first-child .account-name {
    white-space: normal; overflow-wrap: break-word; text-overflow: clip;
  }
  






  .budget-bills-table td:first-child .name-cell,
  #accounts-table td:first-child .name-cell {
    align-items: baseline; flex-wrap: wrap; row-gap: 2px;
  }
  .budget-bills-table td:first-child .account-name,
  #accounts-table td:first-child .account-name { min-width: min-content; }
  
  








  




























  


  .budget-income-table th:nth-child(2), .budget-income-table td:nth-child(2),
  .budget-income-table th:nth-child(6), .budget-income-table td:nth-child(6),
  .budget-income-table th:nth-child(7), .budget-income-table td:nth-child(7) { display: none; }
  





  .budget-income-table th:nth-child(5), .budget-income-table td:nth-child(5) {
    text-align: right; padding-right: var(--table-gutter-right);
  }
  

  .budget-income-table th:nth-child(4), .budget-income-table td:nth-child(4) {
    text-align: right;
  }
  .budget-income-table tfoot { display: none; }
  

  







  .budget-income-table th:first-child, .budget-income-table td:first-child {
    width: var(--ledger-value-x); min-width: var(--ledger-value-x); max-width: none;
    white-space: normal; overflow-wrap: break-word; text-overflow: clip;
  }

  .budget-income-table th:nth-child(3), .budget-income-table td:nth-child(3),
  .budget-income-table th:nth-child(4), .budget-income-table td:nth-child(4),
  .budget-income-table th:last-child, .budget-income-table td:last-child {
    width: 1%; max-width: none; white-space: nowrap;
    padding-left: 6px; padding-right: 6px;
  }
  














  .budget-income-table th:first-child, .budget-income-table td:first-child {
    width: var(--ledger-value-x);
    min-width: var(--ledger-value-x);
    max-width: var(--ledger-value-x);
  }
  .budget-income-table th:nth-child(3), .budget-income-table td:nth-child(3),
  .budget-income-table th:nth-child(5), .budget-income-table td:nth-child(5),
  .budget-income-table th:nth-child(6), .budget-income-table td:nth-child(6) {
    width: 33.33%;
    padding-left: 0;
  }
  

  .budget-income-table th:nth-child(6), .budget-income-table td:nth-child(6) {
    text-align: right;
  }
  









  .budget-income-table th:last-child, .budget-income-table td:last-child {
    padding-right: var(--table-gutter-right);
  }
  .budget-income-table td:first-child .account-name {
    display: block; white-space: normal; overflow-wrap: break-word; text-overflow: clip;
  }
  


  






  













  th:first-child, td:first-child { left: auto; z-index: auto; }
  




  th:first-child { z-index: 4; }

  

  td:first-child .account-name { max-width: none; overflow: hidden; text-overflow: ellipsis; }
  .view-tab { white-space: nowrap; padding-left: 6px; padding-right: 6px; }
  .filter-toggle { white-space: nowrap; }
  th, td { white-space: nowrap; }
  .kpi-pace { white-space: nowrap; font-size: var(--fs-eyebrow); }
  

  .kpi-strip strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--fs-figure); }
  .kpi-strip span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  


  .info-tip span { white-space: normal; overflow: visible; text-overflow: clip; }
  .kpi-estact > div { white-space: nowrap; }
  

  #view-heloc .kpi-strip strong { font-size: var(--fs-figure); }
  




  #view-heloc .heloc-terms-strip { grid-template-columns: 1fr 1fr; }
  #view-heloc .heloc-terms-strip > div:last-child { grid-column: 1 / -1; }
  


  .filter-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 4px 10px;
    border: 1px solid var(--input-border); border-radius: var(--radius-sm);
    background: var(--btn-secondary-bg); color: var(--ink); font: inherit; font-size: 13px; font-weight: 600; }
  



  

  


  .seg { font-size: 12px; padding: 4px 7px; min-height: 32px; }
  .controls.debt-controls { gap: 6px; padding: 8px 6px; }
  

  .segset { flex-wrap: nowrap; }
  #view-heloc .controls { row-gap: 6px; }
  .toggle-chip { font-size: 12px; padding: 4px 9px; }
  .controls { padding: 6px 0; gap: 6px; }
  

  .kpi-strip .cad-2nd, .kpi-strip .cad-sep { display: none; }
  #view-bills .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .topbar h1 { font-size: var(--fs-title-sm); }
  


  #freshness[hidden] { display: none; }
.topbar > .brand p { margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .info-tip p { white-space: normal; overflow: visible; }
  .top-actions { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
  .connection { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; }

  

  



  



  main { padding: 8px 10px calc(20px + env(safe-area-inset-bottom, 0px)); }
  


  




  



  .view-tabs { margin-bottom: var(--space-3); }
  .view-tab { padding: 6px 4px 10px; }
  





  .tab-label-full { display: none; }
  .tab-label-short { display: inline; }

  
  .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 8px; }
  .kpi-strip > div { padding: 6px 8px; min-height: 42px; }
  .kpi-strip > div:nth-child(3n) { border-right: 0; }
  .kpi-strip span { font-size: var(--fs-eyebrow); letter-spacing: 0.01em; }
  .kpi-strip strong { margin-top: 2px; font-size: var(--fs-figure); }
  #view-debts .kpi-strip, #view-bills .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  
  #view-joint .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  

  #view-heloc .kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #view-heloc .kpi-strip > div:nth-child(2n) { border-right: 0; }
  




  #view-heloc .kpi-strip > div:nth-child(2n+1) { border-right: 1px solid var(--line); }

  



  


  .controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; align-items: end; padding: 8px; margin-bottom: 8px; }
  




  




  .controls.debt-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }


.control-label + .segset { margin-left: -4px; }


.control-label {
  color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: 0.01em; white-space: nowrap;
}
  .controls label, .controls .button { flex: none; }
  .controls .search-field { grid-column: 1 / -1; }
  .controls input[type="search"], .controls select { min-height: 40px; font-size: 16px; }
  


  .controls label, .controls select, .controls .button { min-width: 0; }
  .controls .checkbox-field { min-height: 40px; padding: 0 4px; justify-content: flex-start; }

  


  #view-debts .table-shell {
    min-height: 120px;
    max-height: calc(100vh - 500px);
    max-height: calc(100dvh - 360px);
    margin-bottom: max(10px, env(safe-area-inset-bottom));
  }

  






  dialog {
    width: calc(100vw - 24px); max-width: 560px;
    border: 1px solid var(--dialog-border); border-radius: 14px;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.45);
  }
  

  


  












  dialog { max-height: calc(100dvh - 16px); height: auto; bottom: auto; }
  .dialog-content { max-height: calc(100vh - 132px);
    max-height: calc(100dvh - 132px); }
  




  .form-grid, .joint-detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid label.wide, .joint-detail-list > div.wide { grid-column: 1 / -1; }
  

  .form-grid input, .form-grid select, .form-grid textarea { font-size: 16px; min-height: 44px; }
  .alert-item { align-items: stretch; flex-direction: column; }
  .alert-actions { justify-content: flex-start; }
  .terms-band dl { grid-template-columns: 1fr; }

  


  


  .group-toggle, .row-action, .info-button,
  #rideshare-goal-open, .rs-chip, .rs-analytics-tabs .tab,
  .bill-pill.is-proposed, .bill-pill.is-paid { position: relative; }
  




  .info-button { margin-left: 8px; }
  



  .group-toggle::after,
  .info-button::after,
  #rideshare-goal-open::after,
  .rs-chip::after,
  .rs-analytics-tabs .tab::after,
  .bill-pill.is-proposed::after,
  .bill-pill.is-paid::after,
  .row-action::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    min-width: 44px;
    min-height: 44px;
    width: 100%;
    height: 100%;
  }

  


  





  #export-csv { min-height: 44px; }
  .icon-button { width: 44px; height: 44px; }
  

  


  .checkbox-field input { width: 22px; height: 22px; flex-shrink: 0; }

  


  .tabs {
    padding: 0 8px;
    -webkit-mask-image: linear-gradient(to right, #000 86%, transparent);
    mask-image: linear-gradient(to right, #000 86%, transparent);
  }
  .tab { padding: 10px 9px 8px; }
}




@media (max-width: 392.98px) {
  .kpi-strip,
  #view-joint .kpi-strip,
  #view-heloc .kpi-strip,
  #view-bills .kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  

  #view-joint .kpi-strip > div:last-child:nth-child(3n + 1),
  #view-heloc .kpi-strip > div:last-child:nth-child(3n + 1),
  #view-bills .kpi-strip > div:last-child:nth-child(3n + 1) { grid-column: 1 / -1; }
  

  #view-debts .kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  




  #view-debts .kpi-strip > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .kpi-strip > div:nth-child(3n) { border-right: 1px solid var(--line); }
  .kpi-strip > div:nth-child(2n) { border-right: 0; }
}











.auth-body { background: var(--page); }
.auth-page {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: max(var(--space-5), env(safe-area-inset-top)) var(--space-4)
           max(var(--space-5), env(safe-area-inset-bottom));
}
.auth-card {
  width: min(400px, 100%);
  display: grid;
  gap: var(--space-4);
  padding: var(--space-5);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow), var(--raise-edge);
}
.auth-brand { display: grid; justify-items: center; gap: 2px; text-align: center; }
.auth-mark { width: 44px; height: 44px; border-radius: var(--radius-lg); }
.auth-brand h1 {
  margin: var(--space-2) 0 0;
  font-size: var(--fs-title);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--ink);
}
.auth-tagline {
  margin: 0;
  color: var(--muted);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.auth-error,
.auth-note {
  margin: 0;
  padding: 10px var(--space-3);
  border-radius: var(--radius-sm);
  font-size: var(--fs-caption);
  line-height: 1.45;
}
.auth-error { background: var(--danger-soft); border: 1px solid var(--danger); color: var(--danger); }
.auth-note { background: var(--warning-soft); border: 1px solid var(--warning); color: var(--warning); }
.auth-note code { font-size: 11.5px; }
.auth-field { display: grid; gap: var(--space-1); color: var(--muted); font-size: var(--fs-caption); font-weight: 600; }
.auth-field input {
  
  font-size: 16px;
  min-height: 44px;
  padding: 0 var(--space-3);
  color: var(--ink);
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-sm);
}
.auth-field input:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.auth-password { position: relative; display: block; }
.auth-password input { width: 100%; padding-right: 46px; }
.auth-reveal {
  position: absolute;
  right: 0;
  top: 0;
  width: 44px;
  height: 100%;
  min-height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.auth-reveal svg { width: 18px; height: 18px; }
.auth-reveal[aria-pressed="true"] { color: var(--accent); }
.auth-submit { min-height: 48px; font-size: 16px; justify-content: center; }
.auth-footnote { margin: 0; text-align: center; color: var(--muted); font-size: var(--fs-caption); }


.user-menu-wrap { position: relative; }
.alerts-wrap { position: relative; display: inline-flex; }





.icon-only {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; padding: 0;
  min-height: 44px;
}
.icon-only svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
















@media (max-width: 600px) {
  .icon-only { width: 36px; min-height: 36px; }
}



.alerts-planned { margin: 0; padding-left: 18px; color: var(--muted); font-size: 12px; display: grid; gap: 4px; }
.user-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 190px; }
.user-chip .user-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-initials {
  display: none;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.04em;
}
.user-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 40;
  min-width: 208px;
  padding: var(--space-1);
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--dialog-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow), var(--raise-edge);
}
.user-menu[hidden] { display: none; }
.user-menu-head {
  margin: 0;
  padding: var(--space-2) var(--space-3);
  color: var(--muted);
  font-size: var(--fs-caption);
  border-bottom: 1px solid var(--line);
}
.user-menu-head strong { color: var(--ink); }
.user-menu-item {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 0 var(--space-3);
  text-align: left;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.user-menu-item:hover { background: var(--surface-2); }
.user-menu-item:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }



.password-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
  padding: 10px var(--space-3);
  background: var(--warning-soft);
  border: 1px solid var(--warning);
  border-radius: var(--radius-md);
  color: var(--warning);
  font-size: var(--fs-caption);
  line-height: 1.45;
}
.password-banner[hidden] { display: none; }


.danger-banner {
  margin-bottom: var(--space-3);
  padding: 10px var(--space-3);
  background: var(--danger-soft, var(--warning-soft));
  border: 1px solid var(--danger);
  border-radius: var(--radius-md);
  color: var(--danger);
  font-size: var(--fs-caption);
  line-height: 1.45;
}
.danger-banner[hidden] { display: none; }
.danger-banner strong { display: block; margin-bottom: 4px; }
.danger-banner span { display: block; padding: 2px 0; }











.audit-finding + .audit-finding {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--danger);
}
.audit-finding p {
  margin: 4px 0 8px;
  

  white-space: pre-line;
}



.audit-confirm {
  width: 100%;
  

  min-height: 44px;
}
@media (min-width: 601px) {
  .audit-confirm { width: auto; min-width: 15rem; }
}





.deposit-due.is-outside { color: var(--accent); font-style: normal; }








.deposit-row > span:first-child { min-width: 0; }















.deposit-row > span:first-child {
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
  overflow: visible;
  line-height: 1.2;
}









.deposit-row .deposit-due {
  






  



  flex: 0 0 auto; min-width: 0;
  white-space: nowrap;
  line-height: 1.25;
}







.deposit-short {
  margin: 6px 0 0; padding: 6px 8px;
  border-radius: var(--radius-sm, 4px);
  background: var(--danger-soft, var(--surface-2));
  color: var(--danger); font-size: 12px; font-weight: 600; line-height: 1.4;
}









.pace-note {
  margin: 0 0 var(--space-2); font-size: var(--fs-caption);
  color: var(--muted); line-height: 1.45;
}
.pace-note strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.pace-note .pace-detail { white-space: nowrap; }
.password-banner-text { min-width: 0; }
.password-banner-actions { display: flex; gap: var(--space-2); flex-shrink: 0; }



#password-dialog { width: min(440px, calc(100vw - 32px)); }
.password-form { display: grid; gap: var(--space-3); padding: var(--space-4); }
.password-form label { display: grid; gap: 3px; color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600; }




.password-form input {
  font-size: 16px;
  min-height: 44px;
  padding: 0 var(--space-3);
  color: var(--ink);
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-sm);
}
.password-form input:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.password-help, .password-hint { margin: 0; color: var(--muted); font-size: var(--fs-caption); line-height: 1.45; }
#password-state { color: var(--muted); font-size: var(--fs-caption); }
#password-state.error { color: var(--danger); }

@media (max-width: 600px) {
  

  .user-chip { padding: 0 9px; min-height: 36px; max-width: none; }
  .user-chip .user-name { display: none; }
  .user-initials { display: inline; }
  .user-menu { min-width: 200px; }
  .password-banner { align-items: flex-start; flex-direction: column; }
  .password-banner-actions { width: 100%; }
  .password-banner-actions .button { flex: 1 1 auto; justify-content: center; min-height: 44px; }
  






  #password-dialog, #pin-dialog { width: 100vw; max-width: none; height: auto;
    max-height: 100vh; max-height: 100dvh;
    




    bottom: auto; }
  .auth-card { padding: var(--space-4); box-shadow: none; }
  .auth-page { padding-top: max(var(--space-4), env(safe-area-inset-top)); }
}














dialog .joint-detail-strip > div:nth-child(n) { border-right: 1px solid var(--line); }






dialog .joint-detail-strip.is-three-up > div:nth-child(3n) { border-right: 0; }
dialog .joint-detail-strip > div:nth-child(n):last-child { border-right: 0; }













.detail-pairs td:first-child {
  width: auto;
  min-width: 0;
  max-width: none;
  white-space: nowrap;
  vertical-align: top;
  padding-right: 14px;
}
.detail-pairs td:nth-child(2):not(.number) {
  width: 100%;
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}



.rate-note {
  display: block;
  font-size: 11px;
  font-style: normal;
  color: var(--muted);
  line-height: 1.2;
  margin-top: 1px;
}






.deposit-group {
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  

  padding: 8px 6px;
}
.deposit-group .deposit-incoming-head { margin-bottom: 6px; }


.deposit-incoming-head > strong {
  font-size: var(--fs-figure);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}
.deposit-incoming .deposit-incoming-head > strong { color: var(--muted); }




















#deposit-plan-incoming {
  display: grid;
  grid-template-columns: minmax(6ch, 1fr) max-content max-content;
  align-items: baseline;
  column-gap: 6px;
  row-gap: 3px;
}


#deposit-plan-incoming > .deposit-incoming-head {
  grid-column: 1 / -1;
  display: flex; justify-content: space-between; align-items: baseline;
}





.deposit-incoming {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  





  padding: 8px 6px 8px 12px;
}



.deposit-incoming-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.deposit-incoming .deposit-row > span,
.deposit-incoming .deposit-row > strong { color: var(--muted); }







.deposit-incoming-single > span {
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--muted);
}
.deposit-incoming-single > strong {
  font-size: var(--fs-figure);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}



.section-source {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
}







.deposit-why {
  margin: 2px 0 0;
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
}
.deposit-why[hidden] { display: none; }













.live-refresh { display: none; }
@media (min-width: 601px) and (hover: hover) and (pointer: fine) {
  .live-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-left: 6px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--group);
    color: var(--muted);
    cursor: pointer;
    vertical-align: middle;
  }
  .live-refresh:hover { color: var(--ink); border-color: var(--muted); }
  .live-refresh:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
  .live-refresh[disabled] { opacity: 0.5; cursor: default; }
  
  .live-refresh.is-busy svg { animation: spin 900ms linear infinite; }
}
@keyframes spin { to { transform: rotate(360deg); } }

.live-refresh-note { margin-left: 8px; font-size: 12px; color: var(--muted); }
.live-refresh-note.is-ok { color: var(--success); }
.live-refresh-note.is-over { color: var(--danger); }




#balances-stamp.is-stale { color: var(--warning-strong, var(--warning)); }














.joint-table-shell { contain: paint; }









.stack-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  align-items: start;
}
.stack-form > label.wide,
.stack-form > label:has(textarea) { grid-column: 1 / -1; }
.stack-form > label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.stack-form > label > input,
.stack-form > label > select,
.stack-form > label > textarea {
  width: 100%;
  min-height: 40px;            
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface-2, var(--group));
  color: var(--ink);
  



  font-size: 16px;
  font-weight: 500;
}
.stack-form > label > textarea {
  min-height: 72px;
  resize: vertical;
  line-height: 1.4;
}
.stack-form > label > input:focus-visible,
.stack-form > label > select:focus-visible,
.stack-form > label > textarea:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 1px;
}


@media (max-width: 360px) {
  .budget-bills-table th:nth-child(4),
  .budget-bills-table td:nth-child(4) { padding-left: 8px; padding-right: 0; }
}





@media (max-width: 600px) {
  :is(#projection-table, #personal-bills-table-projection) :is(th, td) {
    padding-inline: 3px;
  }
  :is(#projection-table, #personal-bills-table-projection) :is(th, td):first-child {
    width: auto;
    min-width: 3rem;
    padding-left: 0;
  }
  :is(#projection-table, #personal-bills-table-projection) :is(th, td):last-child {
    padding-right: 0;
  }
}



#budget-income-heading .section-action-inline { gap: 8px; }
#income-editor-dialog { max-width: 480px; }
#income-editor-form { padding-bottom: var(--space-4); }
.income-editor-group { margin: var(--space-3) 0; }
.income-editor-group h3 { margin: 0 0 var(--space-2); font-size: var(--fs-eyebrow); color: var(--muted); }
.income-editor-row { display: grid; grid-template-columns: minmax(0, 1fr) 7.5rem; gap: 8px;
  align-items: center; padding: 7px 0; border-bottom: 1px solid var(--line); }
.income-editor-label { min-width: 0; font-size: var(--fs-cell); }
.income-editor-label small { display: block; color: var(--muted); font-size: var(--fs-caption); }
.income-editor-row input { min-width: 0; width: 100%; text-align: right; font-variant-numeric: tabular-nums; }
.income-editor-note, #income-editor-status { font-size: var(--fs-caption); color: var(--muted); }
#income-editor-status.is-error { color: var(--danger); }
.income-editor-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 8px; }













.deposit-more,
.section-action > span[role="button"] {
  display: inline-flex; align-items: center;
  min-height: 44px;
  padding: 0 8px;
  






  margin: -13px -8px -13px auto;
}
#heloc-terms-btn, #live-refresh, .info-tip-close, .row-open.row-action {
  min-width: 44px; min-height: 44px;
}












@media (max-width: 600px) {
  #heloc-terms-btn { min-width: 0; min-height: 0; width: 22px; height: 22px; }
}


.floor-alert {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px;
}













.pull-refresh {
  position: relative;
  height: 0;
  overflow: visible;
  pointer-events: none;
  z-index: 1;
}


.pull-spinner {
  position: absolute;
  left: 50%;
  top: 0;
  width: 26px;
  height: 26px;
  margin-left: -13px;
  opacity: var(--pull-opacity, 0);
  transform: translateY(var(--pull-spinner-y, 0px)) scale(var(--pull-scale, 0.7));
  transform-origin: 50% 50%;
}
.pull-spinner > i {
  position: absolute;
  left: 50%;
  top: 0;
  width: 2px;
  height: 7px;
  margin-left: -1px;
  border-radius: 1px;
  background: var(--muted);
  transform-origin: 1px 13px;
  

  opacity: 0.15;
}
.pull-refresh.is-armed .pull-spinner > i { opacity: 1; }




.pull-note {
  position: absolute;
  left: 50%;
  top: 0;
  









  


  transform: translate(-50%, calc(var(--pull-spinner-y, 0px) - 26px));
  opacity: var(--pull-opacity, 0);
  white-space: nowrap;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--muted);
  transition: color var(--motion-fast) var(--ease);
}

.pull-refresh.is-armed .pull-note { color: var(--accent-line); }











.pull-refresh.is-busy .pull-spinner > i { opacity: 0.16; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(1)  { opacity: 1;    }
.pull-refresh.is-busy .pull-spinner > i:nth-child(2)  { opacity: 0.86; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(3)  { opacity: 0.72; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(4)  { opacity: 0.60; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(5)  { opacity: 0.50; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(6)  { opacity: 0.42; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(7)  { opacity: 0.35; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(8)  { opacity: 0.29; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(9)  { opacity: 0.25; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(10) { opacity: 0.22; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(11) { opacity: 0.19; }
.pull-refresh.is-busy .pull-spinner > i:nth-child(12) { opacity: 0.16; }
.pull-spinner > i:nth-child(1)  { transform: rotate(0deg);   }
.pull-spinner > i:nth-child(2)  { transform: rotate(30deg);  }
.pull-spinner > i:nth-child(3)  { transform: rotate(60deg);  }
.pull-spinner > i:nth-child(4)  { transform: rotate(90deg);  }
.pull-spinner > i:nth-child(5)  { transform: rotate(120deg); }
.pull-spinner > i:nth-child(6)  { transform: rotate(150deg); }
.pull-spinner > i:nth-child(7)  { transform: rotate(180deg); }
.pull-spinner > i:nth-child(8)  { transform: rotate(210deg); }
.pull-spinner > i:nth-child(9)  { transform: rotate(240deg); }
.pull-spinner > i:nth-child(10) { transform: rotate(270deg); }
.pull-spinner > i:nth-child(11) { transform: rotate(300deg); }
.pull-spinner > i:nth-child(12) { transform: rotate(330deg); }


.pull-refresh.is-busy .pull-spinner { animation: pull-spin 0.9s steps(12) infinite; }







@keyframes pull-spin {
  from { transform: translateY(var(--pull-spinner-y, 0px))
                    scale(var(--pull-scale, 1)) rotate(0deg); }
  to   { transform: translateY(var(--pull-spinner-y, 0px))
                    scale(var(--pull-scale, 1)) rotate(360deg); }
}



main {
  transform: translate3d(0, var(--pull-shift, 0px), 0);
}
body.is-pull-settling main { transition: transform 320ms cubic-bezier(.22,.61,.36,1); }
body.is-pull-settling .pull-spinner { transition: opacity 240ms var(--ease); }
body.is-pulling main { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  

  .pull-refresh.is-busy .pull-spinner {
    animation: pull-pulse 1.2s ease-in-out infinite;
  }
  body.is-pull-settling main { transition-duration: 1ms; }
}
@keyframes pull-pulse { 50% { opacity: 0.35; } }














body { overscroll-behavior-y: contain; }




.cal-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-2); margin-bottom: var(--space-2);
}
.cal-head > strong { font-size: var(--fs-figure); }
.cal-dow, .cal-grid {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px;
}
.cal-dow > span {
  text-align: center; font-size: 11px; font-weight: 700;
  color: var(--muted); padding-bottom: 4px;
}
.cal-day {
  min-width: 0;
  padding-inline: 0;
  aspect-ratio: 1;
  


  position: relative;
  display: flex; align-items: center; justify-content: center;
  min-height: 40px;                 
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--group); color: var(--ink);
  font-size: var(--fs-figure); font-weight: 600; cursor: pointer;
}
.cal-day.is-outside { visibility: hidden; }

.cal-day.is-weekend { background: transparent; color: var(--muted); cursor: default; opacity: 0.45; }



.cal-day.is-today { border-color: var(--accent-line); border-width: 2px; color: var(--accent-line); }





.cal-today-tag {
  position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  font-size: 8px; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; white-space: nowrap;
  color: var(--surface); background: var(--accent-line);
  padding: 1px 4px; border-radius: var(--radius-pill);
}
.cal-day.is-off { background: var(--danger-soft); border-color: var(--danger); color: var(--danger); }
.cal-key.is-off { background: var(--danger-soft); border: 1px solid var(--danger); }




.cal-arrears {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-3);
  font-size: 13px;
  color: var(--ink-soft, #9aa7a1);
}


.cal-arrears > span { flex: 0 0 auto; }
.cal-arrears select { flex: 0 1 auto; min-width: 0; }
.cal-arrears-state { flex: 1 1 auto; font-style: normal; text-align: right; }

.cal-effect { margin-top: var(--space-3); font-size: 13px; }
.cal-effect > div {
  display: flex; justify-content: space-between; gap: var(--space-2);
  padding: 6px 0; border-top: 1px solid var(--line);
}
.cal-effect strong { font-variant-numeric: tabular-nums; }



.deposit-head { flex-wrap: nowrap; }
.deposit-head > span,
.deposit-head > strong { white-space: nowrap; }











#open-days-off {
  color: var(--link-fg);
  text-decoration: underline;
  cursor: pointer;
  font-weight: 600;
}
#open-days-off:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }




.section-action {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0 0 var(--space-2);
  font-size: 12px;
}
.section-action-hint { color: var(--muted); }






.section-action-note {
  color: var(--muted);
  font-style: normal;
  font-variant-numeric: tabular-nums;
}



.dialog-note {
  grid-column: 1 / -1;
  margin: var(--space-2) 0;
  color: var(--muted);
  font-size: var(--fs-figure);
}
.section-action-note[hidden] { display: none; }







.section-action-lead > span[role="button"] { margin-left: 0; }








.deposit-done {
  margin: 0;
  

  padding: 10px 8px 2px;
  

  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}




.spend-chart { margin: var(--space-3) 0 0; padding: 0; }
.spend-chart > figcaption {
  font-size: 12px; letter-spacing: 0.01em;
  color: var(--muted); margin-bottom: var(--space-2);
}
.spend-bars {
  display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
  align-items: end; gap: 6px; min-height: 132px;
}
.spend-bar { display: flex; flex-direction: column; align-items: center;
             justify-content: flex-end; gap: 4px; min-width: 0; height: 132px; }


.spend-bar > .spend-track {
  width: 100%; flex: 1 1 auto; display: flex; align-items: flex-end;
  border-radius: 4px 4px 0 0; overflow: hidden;
}
.spend-bar > .spend-track > span {
  display: block; width: 100%; background: var(--accent);
  border-radius: 4px 4px 0 0; min-height: 2px;
}








.spend-bar.is-partial > .spend-track > span { opacity: .5; }
.spend-bar > .spend-value {
  font-size: 11px; font-variant-numeric: tabular-nums; color: var(--ink);
  white-space: nowrap;
}
.spend-bar > .spend-label {
  font-size: 11px; color: var(--muted); white-space: nowrap;
}

.spend-sofar { opacity: .7; }
.spend-bar.is-empty > .spend-value { color: var(--muted); }
@media (max-width: 420px) {
  .spend-bars { gap: 4px; }
  .spend-bar > .spend-value, .spend-bar > .spend-label { font-size: var(--fs-eyebrow); }
}









.auth-passkey {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 52px;
  height: 52px;
  padding: 0;
  margin: var(--space-2) auto 0;
  border-radius: 14px;
}
.auth-passkey > .faceid-glyph { display: block; }








.popout-transactions { margin-top: var(--space-2); }






.auth-passkey.is-busy { opacity: 0.55; cursor: default; }

















@media (min-width: 901px) {
  :root { --content-max: 1120px; }
  main {
    max-width: var(--content-max);
    margin-inline: auto;
  }
  .topbar {
    


    padding-inline: max(22px, calc((100% - var(--content-max)) / 2 + 18px));
  }
  


  .view-tabs { margin-inline: auto; }
}







.txn-filters { margin: 0 0 var(--space-2); }







.txn-filter-count {
  font-variant-numeric: tabular-nums; text-transform: none;
  letter-spacing: 0; font-weight: 600; color: var(--accent-line);
}

.txn-filter-clear {
  margin-left: auto; border: 0; background: none; cursor: pointer;
  padding: 4px 2px; min-height: 24px;
  font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0;
  color: var(--accent-line);
}



.txn-filter-bar {
  





  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 6px 0 8px; border-bottom: 1px solid var(--line);
  margin-bottom: 4px;
}


.txn-filter-search {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  padding: 4px 12px 4px 10px; min-height: 30px;
  border: 1px solid var(--input-border, var(--line));
  border-radius: var(--radius-pill);
  background: var(--input-bg, var(--surface-2)); color: var(--ink);
  font-size: 13px; font-weight: 600;
}
.txn-filter-search svg { flex: 0 0 auto; opacity: .8; }










.txn-recent, .txn-suggest {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin: -2px 0 2px;
}
.txn-recent { flex-direction: column; align-items: stretch; }
.txn-recent-list { display: flex; flex-wrap: wrap; gap: 6px; }



.txn-recent-item, .txn-suggest-item {
  font: inherit;
  font-size: 0.85rem;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface-2);
  



  color: var(--ink);
  cursor: pointer;
  
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.txn-recent-item:hover, .txn-suggest-item:hover { border-color: var(--accent); }

.txn-search-actions {
  display: flex; align-items: center; gap: 14px; margin-top: var(--space-3);
}
















@media (max-width: 429px) {
  .txn-filter-search span { display: none; }
  .txn-filter-search { padding-inline: 10px; }
}

.txn-filter-chips {
  margin-left: auto;
  



  display: inline-flex; align-items: center; flex-wrap: nowrap; flex: 0 0 auto;
  gap: 8px; justify-content: flex-end; max-width: 100%;
}







.txn-budget-filter {
  display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto;
}
.txn-budget-label {
  color: var(--muted); font-size: 12px; font-weight: 600; white-space: nowrap;
}
.txn-budget-switch {
  display: inline-flex; align-items: stretch;
  border: 1px solid var(--input-border, var(--line));
  border-radius: var(--radius-pill); overflow: hidden;
}
.txn-budget-switch button {
  cursor: pointer; padding: 3px 10px; min-height: 24px;
  border: 0; background: none; color: var(--muted);
  font-size: 12px; font-weight: 600; letter-spacing: 0;
}

.txn-budget-switch button + button {
  border-left: 1px solid var(--input-border, var(--line));
}


.txn-budget-switch button.is-on {
  background: var(--accent); color: var(--on-accent, #06120d);
}

.txn-filter-unknown {
  cursor: pointer;
  padding: 3px 10px; min-height: 24px;
  border: 1px solid var(--input-border, var(--line));
  border-radius: var(--radius-pill);
  background: none; color: var(--muted);
  font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0;
}


.txn-filter-unknown.is-on {
  background: var(--accent); border-color: var(--accent);
  color: var(--on-accent);
}


.txn-filter-unknown ~ .txn-filter-clear { margin-left: 8px; }

.txn-filter-grid { display: grid; gap: 6px; padding: 6px 0 2px; }
.txn-filter-grid input, .txn-filter-grid select {
  width: 100%;
  



  height: 38px;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface-2, var(--surface));
  color: var(--ink);
  


}
.txn-filter-grid input::placeholder { color: var(--muted); }



.txn-filter-wide { position: relative; }



.txn-filter-select::after {
  content: "\25be"; position: absolute; right: 10px; top: 50%;
  transform: translateY(-50%);
  color: var(--muted); pointer-events: none; font-size: 11px;
}
.txn-filter-select > select { padding-right: 24px; }

.txn-filter-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.txn-filter-grid > input[type="search"], .txn-filter-wide { grid-column: 1 / -1; }




.txn-filter-field {
  display: flex; align-items: center; gap: 6px; min-width: 0;
}
.txn-filter-field > span {
  


  flex: 0 0 auto; min-width: 2.9rem;
  font-size: 11px; letter-spacing: 0.01em;
  color: var(--muted);
}
.txn-filter-field > input, .txn-filter-field > select { flex: 1 1 auto; min-width: 0; }
@media (min-width: 640px) {
  
  .txn-filter-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}




.tour-ov { position: fixed; inset: 0; z-index: 3000; display: none; }
.tour-ov.on { display: block; }
@media (prefers-reduced-motion: reduce) { .tour-hole { transition: none; } }




.app-lock {
  position: fixed; inset: 0; z-index: 4000;
  display: flex; align-items: center; justify-content: center;
  background: var(--page);
}
.app-lock[hidden] { display: none; }
.app-lock-card {
  display: grid; justify-items: center; gap: 10px;
  padding: 28px 24px; width: min(340px, calc(100vw - 32px));
  text-align: center; color: var(--ink);
}
.app-lock-card > h2 { margin: 6px 0 0; font-size: 19px; font-weight: 700; }
.app-lock-card > p { margin: 0 0 8px; font-size: var(--fs-figure); color: var(--muted); }
.app-lock-card > .button { min-width: 160px; }
.app-lock-card > .faceid-glyph { color: var(--accent); }




.app-lock.is-scanning .faceid-glyph { animation: faceid-pulse 1.1s ease-in-out infinite; }
@keyframes faceid-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.5; transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .app-lock.is-scanning .faceid-glyph { animation: none; opacity: 0.6; }
}



.app-lock-pin { display: grid; gap: 10px; justify-items: center; width: 100%; }
.app-lock-pin > input {
  width: 190px; height: 46px; text-align: center;
  font-size: 22px; letter-spacing: 0.35em; font-variant-numeric: tabular-nums;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--surface-2, var(--surface)); color: var(--ink);
}
.app-lock-error { margin: 0; font-size: 13px; color: var(--danger); }
#pin-dialog .auth-field > input {
  width: 100%; height: 42px; padding: 8px 10px;
  font-size: 18px; letter-spacing: 0.2em; font-variant-numeric: tabular-nums;
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--surface-2, var(--surface)); color: var(--ink);
}






.app-lock-card > .lock-glyph { color: var(--accent); }
.app-lock-card > .faceid-glyph { display: none; }
.app-lock-card.has-faceid > .faceid-glyph { display: block; }
.app-lock-card.has-faceid > .lock-glyph { display: none; }
.app-lock-card.is-resolving > :not(.faceid-glyph):not(.lock-glyph) { visibility: hidden; }




.dialog-header {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--surface);
}








.pinpad { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.pinpad-label { color: var(--muted); font-size: var(--fs-figure); }

.pinpad-dots { display: flex; gap: 14px; }
.pinpad-dot {
  width: 13px; height: 13px; border-radius: 50%;
  border: 1.5px solid var(--input-border); background: transparent;
  transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease;
}
.pinpad-dot.is-on {
  background: var(--accent); border-color: var(--accent); transform: scale(1.12);
}


.pinpad-dots.is-wrong { animation: pinpad-shake 420ms ease; }
@keyframes pinpad-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-7px); } 40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); } 80% { transform: translateX(2px); }
}

.pinpad-keys {
  display: grid; grid-template-columns: repeat(3, 74px);
  gap: 14px; justify-content: center;
}
.pinpad-key {
  height: 68px; border-radius: 50%;
  border: 1px solid var(--line); background: var(--surface-2);
  color: var(--ink); font-size: 27px; font-weight: 400;
  font-variant-numeric: tabular-nums;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
  transition: background-color 90ms ease, transform 90ms ease;
}
.pinpad-key:active { background: var(--accent); color: var(--on-accent); transform: scale(0.94); }
.pinpad-key:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.pinpad-key.is-blank { border: 0; background: none; pointer-events: none; }
.pinpad-del { font-size: 22px; border-color: transparent; background: none; }
.pinpad-del:active { background: var(--group); color: var(--ink); }



.app-lock .pinpad-key { background: rgba(255, 255, 255, 0.09); border-color: rgba(255, 255, 255, 0.16); color: #fff; }
.app-lock .pinpad-key:active { background: var(--accent); }
.app-lock .pinpad-del { background: none; border-color: transparent; }





.app-lock .pinpad-key.is-blank { background: none; border-color: transparent; }
.app-lock .pinpad-dot { border-color: rgba(255, 255, 255, 0.45); }
.app-lock .pinpad-dot.is-on { background: #fff; border-color: #fff; }


@media (max-height: 700px) {
  .pinpad { gap: 12px; }
  .pinpad-keys { grid-template-columns: repeat(3, 66px); gap: 10px; }
  .pinpad-key { height: 58px; font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .pinpad-dot, .pinpad-key { transition: none; }
  .pinpad-dots.is-wrong { animation: none; }
}




.deposit-note {
  margin: 2px 0 0;
  



  color: var(--muted); font-size: var(--fs-caption); font-weight: 500;
  letter-spacing: .01em;
}






.rideshare-card { display: grid; gap: 12px; }
.rideshare-head {
  


  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: 12px;
}

























.rideshare-head > strong {
  












  font-size: var(--fs-figure); font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.rideshare-bar {
  

  height: 10px; border-radius: 999px; background: var(--group); overflow: hidden;
}













.rideshare-bar-wrap > .rideshare-bar {
  height: 8px; border-radius: var(--radius-pill);
  background: var(--bar-track);
}



.seg-rest { background: var(--rideshare-rest); }

.rideshare-legend {
  

  




  





  



  display: flex; flex-wrap: wrap; gap: 6px; margin: 0; align-items: baseline;
  







  font-size: var(--fs-eyebrow); color: var(--muted);
}
.rideshare-legend b { color: var(--ink); font-variant-numeric: tabular-nums; }


.rideshare-bar { display: flex; }
.rideshare-bar > span {
  display: flex; align-items: center; height: 100%; width: 0;
  transition: width 260ms ease;
}
.rideshare-bar > span:first-child { border-radius: 999px 0 0 999px; }
.rideshare-bar > span:last-child  { border-radius: 0 999px 999px 0; }

.rideshare-bar > span[style*="width: 0px"] { border-radius: 0; }
.seg-uber { background: var(--rideshare-uber); }
.seg-lyft { background: var(--rideshare-lyft); }
.rideshare-key {
  display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  margin-right: 6px; vertical-align: baseline;
}















.rideshare-status { margin: 0; color: var(--muted); font-size: var(--fs-figure); }
.rideshare-card.is-met .rideshare-status { color: var(--accent-line); font-weight: 600; }

.rideshare-week {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid var(--line);
}
.rideshare-week:last-child { border-bottom: 0; }
.rideshare-week .rideshare-week-when { color: var(--muted); font-size: 13px; }
.rideshare-week .rideshare-week-split { color: var(--muted); font-size: 12px; }
.rideshare-week > strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.rideshare-week.is-met > strong { color: var(--accent-line); }
@media (prefers-reduced-motion: reduce) { .rideshare-bar > span { transition: none; } }







@media (max-width: 460px) {
  .view-tabs {
    




    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .view-tabs::-webkit-scrollbar { display: none; }
  .view-tab {
    font-size: var(--fs-figure);
    padding-inline: 0;
    white-space: nowrap;
  }
}










@media (max-width: 392px) {
  





  .view-tabs { gap: 4px; }
  .view-tab { font-size: var(--fs-cell); }
}
@media (max-width: 340px) {
  .view-tab { font-size: var(--fs-caption); }
}



.rideshare-deposit {
  margin-left: 14px;
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  padding: 5px 0; border-bottom: 1px solid var(--line);
  line-height: 1.3;
}
.rideshare-deposit:last-child { border-bottom: 0; }
.rideshare-deposit-what { font-weight: 600; }
.rideshare-deposit .rideshare-deposit-when { color: var(--muted); font-weight: 400; }
.rideshare-deposit > strong { font-variant-numeric: tabular-nums; white-space: nowrap; }



.rideshare-average { margin: 0 0 10px; color: var(--muted); font-size: 13px; }
.rideshare-month {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid var(--line);
}
.rideshare-month:last-child { border-bottom: 0; }
.rideshare-month .rideshare-month-split { color: var(--muted); font-size: 12px; }
.rideshare-month > strong { font-variant-numeric: tabular-nums; white-space: nowrap; }

.rideshare-month-figures { display: grid; justify-items: end; gap: 1px; }
.rideshare-month-avg { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }










.rideshare-week-block { margin-bottom: 16px; margin-left: 14px; }
.rideshare-week-block:last-child { margin-bottom: 0; }
.rideshare-week-head {
  font-size: var(--fs-figure);
  





  



  


  




  


  




  




  





  





  display: grid; grid-template-columns: minmax(0, 112px) 46px minmax(0, 1fr);
  align-items: baseline; column-gap: 4px; row-gap: 0;
  padding: 6px 0 5px; margin-bottom: 0;
  



  font-weight: 700; font-variant-numeric: tabular-nums;
  cursor: pointer; list-style: none;
}

.rideshare-week-head::-webkit-details-marker { display: none; }
.rideshare-week-title::before {
  



  content: "\203A"; display: inline-block; margin-right: 4px;
  color: var(--muted); transition: transform 140ms ease;
}
.rideshare-week-block[open] .rideshare-week-title::before { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) {
  .rideshare-week-title::before { transition: none; }
}





.rideshare-legend-sm { font-size: var(--fs-eyebrow); margin: 3px 0 4px; }
.rideshare-bar-sm { height: 6px; margin-bottom: 6px; }


.rideshare-bar-sm > span { transition: width 520ms cubic-bezier(0.22, 0.61, 0.36, 1); }




.rideshare-bar-wrap { position: relative; }









.rideshare-bar-goal {
  position: absolute; top: 0; bottom: 0; width: 2px;
  



  background: var(--ink); opacity: 0.9; border-radius: 1px;
  transform: translateX(-1px); pointer-events: none;
}
.rideshare-bar-goal[hidden] { display: none; }







.rideshare-bar-wrap { flex: 1 1 auto; min-width: 0; }




.rideshare-bar-proj {
  flex: 0 0 auto; white-space: nowrap;
  









  font-size: var(--fs-cell); font-weight: 700;
  font-variant-numeric: tabular-nums; color: var(--ink);
}
.rideshare-bar-proj.is-over { color: var(--accent-line); }
.rideshare-bar-proj[hidden] { display: none; }




.seg-unitemised { background: var(--muted); opacity: 0.55; }




#txn-search-dialog .txn-filter-wide > span { flex: 0 0 6em; }




#pin-form { row-gap: 0; }
#pin-form > .pinpad { margin-top: var(--space-3); }
#pin-form > .form-actions { padding-top: 0; }
#pin-state:not(:empty), #pin-remove:not([hidden]) {
  margin-top: calc(var(--space-3) + 14px);
}



.rideshare-week-head > .rideshare-week-title {
  




  color: var(--muted); font-weight: 600;
  white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis;
  






  padding-left: 3px;
}
.rideshare-day-head > .rideshare-day-title { padding-left: 3px; }

.rideshare-week-head > strong { white-space: nowrap; text-align: right; }


.rideshare-week-head > .rideshare-legend-sm {
  





  justify-content: space-between;
}



.rideshare-week-head > .rideshare-legend-sm {
  




  







  display: grid; grid-template-columns: 78px 1fr; column-gap: 10px;
  


}



.rideshare-week-head > .rideshare-legend-sm > span {
  







  display: flex; align-items: baseline; gap: 4px; min-width: 0;
}


.rideshare-leg-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }





.rideshare-week-head .rideshare-leg-name {
  flex: 0 0 auto; overflow: visible; text-overflow: clip;
}





.rideshare-week-head .rideshare-key { margin-right: 0; }

.rideshare-key { flex: 0 0 auto; }
.rideshare-week-head > .rideshare-legend-sm {
  



  





  justify-self: stretch; margin: 0; padding-left: 6px;
  white-space: nowrap;
}
.rideshare-week-head > .rideshare-legend-sm span { white-space: nowrap; }

.rideshare-week-head > .rideshare-bar { grid-column: 1 / -1; margin-top: 5px; }


.rideshare-day { border-bottom: 1px solid var(--line); margin-left: 14px; }
.rideshare-day:last-child { border-bottom: 0; }
.rideshare-day-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  padding: 6px 0; cursor: pointer; list-style: none;
  font-variant-numeric: tabular-nums; line-height: 1.3;
}
.rideshare-day-head::-webkit-details-marker { display: none; }
.rideshare-day-title::before {
  content: "\203A"; display: inline-block; margin-right: 8px;
  color: var(--muted); transition: transform 140ms ease;
}
.rideshare-day[open] .rideshare-day-title::before { transform: rotate(90deg); }
.rideshare-day > .rideshare-deposit { padding-left: 18px; border-bottom: 0; }
@media (prefers-reduced-motion: reduce) {
  .rideshare-day-title::before { transition: none; }
}




.rideshare-detail { padding-inline: var(--space-3); }













.rs-analytics-sheet { margin-inline: calc(var(--space-3) * -1); }

.rideshare-goal-edit {
  display: flex; align-items: center; gap: 8px; margin: 6px 0 0;
}
.rideshare-goal-edit label { flex: 0 0 auto; color: var(--muted); font-size: var(--fs-eyebrow); }




.rideshare-goal-edit input {
  flex: 0 0 auto; width: calc(7ch + 18px); min-width: 0; text-align: right;
  font: inherit; font-size: var(--fs-cell); font-variant-numeric: tabular-nums;
  padding: 5px 8px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
}













.rideshare-report { margin: 2px 0 0; border-top: 0; padding-top: 0; }






















.rs-sec-head > .rs-measure-pick { margin-left: auto; }





.rs-section-body > #rs-platform-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
  margin: 0 0 8px;
}
#rs-platform-row > .rs-measure-pick { margin-left: auto; }













.rs-filter-line > .rs-measure-pick { margin-left: auto; }








#rs-platform-row .rs-measure-trigger {
  background: transparent;
  border-color: var(--input-border);
}





.rs-sec-head > .rs-measure-pick + .rs-sec-max { margin-left: 8px; }





.rs-pick { display: inline-flex; min-width: 0; position: relative; }
.rs-filter-line {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
  margin: 0 0 6px;
}




.rs-filter-line > #rs-service-row {
  display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding-top: 0;
}










.rs-filter-line > #rs-service-row {
  border-left: 1px solid var(--line);
  padding-left: 7px; margin-left: 3px;
}
.rs-an-filters { margin: 0 0 4px; }



.rs-empty-note {
  margin: 0 0 8px; color: var(--muted);
  font-size: var(--fs-eyebrow); line-height: 1.4;
}


.rs-measure-pick {
  display: inline-flex; min-width: 0; margin-left: auto;
  position: relative;
}



.rs-measure-trigger {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 11px;
}


.rs-measure-caret {
  display: inline-block; flex: 0 0 auto;
  transform: rotate(90deg);
  color: var(--muted);
  font-size: var(--fs-caption); line-height: 1;
}
.rs-measure-trigger[aria-expanded="true"] .rs-measure-caret {
  transform: rotate(-90deg);
}










.user-menu.rs-measure-menu {
  min-width: 0;
  width: max-content;
  padding: 4px;
}
.rs-measure-menu .user-menu-item {
  font-size: var(--fs-cell);
  padding: 7px var(--space-2);
  border-radius: var(--radius-sm);
}


.rs-measure-menu .user-menu-item.is-active {
  background: var(--surface-2); color: var(--ink); font-weight: 700;
}
.rs-measure-menu .user-menu-item[hidden] { display: none; }






#rs-platform-row, #rs-bucket-row, #rs-stat-row { flex: 0 1 auto; }
#rs-bucket-row { order: -1; }
#rs-stat-row { order: -1; }


.rideshare-report-head {
  cursor: pointer; list-style: none;
  display: flex; align-items: baseline; gap: 8px;
  min-width: 0;
}
.rideshare-report-head > .rideshare-head {
  margin-left: auto; min-width: 0;
  



  color: var(--muted); font-weight: 400;
}
.rideshare-report-head > .rideshare-head > strong {
  color: var(--ink); font-weight: 700;
}
.rideshare-report-head::-webkit-details-marker { display: none; }





.rideshare-report-form {
  























  display: flex; flex-wrap: wrap; gap: 4px; align-items: center;
  min-width: 0;
}




.rideshare-card > * { min-width: 0; }





.rideshare-report-form .auth-field input,
.rideshare-report-form .auth-field select { min-width: 0; }
.rideshare-report-form > .auth-field {
  gap: 0; min-width: 0; flex: 0 0 auto;
}
































.rideshare-report-form > .rs-f-day { flex: 0 1 auto; min-width: 0; }















.rideshare-report-form > .rs-f-amount {
  display: flex; align-items: baseline; gap: 3px;
  flex: 1 1 3.4rem; min-width: 0;
}
.rideshare-report-form .rs-f-tag {
  flex: 0 0 auto;
  font-size: var(--fs-eyebrow); color: var(--muted);
  
  font-weight: 500;
}
.rideshare-report-form .rs-f-amount input {
  flex: 1 1 auto; min-width: 0; width: 100%;
}






.rideshare-report-form #report-day { width: auto; min-width: 0; }






.rideshare-report-form .form-actions .button {
  padding-left: 9px; padding-right: 9px;
}












.rideshare-report-form #report-day { font-size: var(--fs-cell); }










.rideshare-report-form #report-amount { font-size: 16px; }
.rideshare-report-form #report-amount { width: 4.6rem; }






.rideshare-report-form .auth-field input,
.rideshare-report-form .auth-field select,
.rideshare-report-form .form-actions .button {
  
















  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  height: 34px;
  min-height: 34px;
  padding: 2px var(--space-2);
}































.rideshare-report-form .auth-field input,
.rideshare-report-form .auth-field select,
.rideshare-report-form .form-actions .button {
  font-size: var(--fs-cell);
  border-radius: var(--radius-sm);
}












.rideshare-report-form .auth-field input,
.rideshare-report-form .auth-field select { text-align: start; }









.rideshare-report-form #report-day::-webkit-date-and-time-value {
  display: block;
  width: 100%;
  text-align: start;
  margin: 0;
}



.rideshare-report-form #report-day::-webkit-datetime-edit { padding: 0; }
.rideshare-report-form .form-actions {
  





  padding-top: 0;
  





  flex: 0 0 auto;
  display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;
}




.rs-mix-month {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 8px;
  margin: 10px 0 2px;
  padding: 4px 0 3px;
  border-bottom: 1px solid var(--line);
  





  background: var(--surface);
  font-size: var(--fs-eyebrow);
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--muted);
}
.rs-mix-month:first-of-type { margin-top: 2px; }













#rs-analytics-mix, #rs-analytics-months-list { --rs-year-h: 26px; }
.rs-mix-year {
  top: 0; z-index: 3;
  min-height: var(--rs-year-h);
  margin-top: 16px;
  




  color: var(--ink);
  font-size: var(--fs-caption);
}
.rs-mix-year:first-of-type { margin-top: 2px; }






.rs-mix-row.is-head + .rs-mix-year,
.rs-mix-row.is-head + .rs-mix-month { margin-top: 2px; }











#rs-analytics-mix .rs-mix-row.is-head {
  position: sticky; top: 0; z-index: 4;
  

  background: var(--surface);
}
.rs-mix-year { top: var(--rs-head-h, 0px); }
.rs-mix-month:not(.rs-mix-year) {
  top: calc(var(--rs-head-h, 0px) + var(--rs-year-h)); z-index: 2;
}
.rs-mix-month-name { font-weight: 700; }
.rs-mix-month-sum {
  font-variant-numeric: tabular-nums; white-space: nowrap;
  text-transform: none; letter-spacing: 0;
}


.rs-mix-month-weeks { display: none; }
@media (min-width: 380px) { .rs-mix-month-weeks { display: inline; } }




.rs-mix-quest {
  display: flex; align-items: baseline; gap: 6px;
  padding: 2px 0 0;
  font-size: var(--fs-eyebrow); color: var(--muted);
}
.rs-mix-quest > b { color: var(--ink); font-variant-numeric: tabular-nums; }
.rs-mix-quest > em {
  font-style: normal; margin-left: auto; text-align: right;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  min-width: 0;
}





.rideshare-manual-list { margin-top: 8px; }
.rideshare-manual-head,
.rideshare-manual-empty {
  margin: 0 0 4px; color: var(--muted);
  font-size: var(--fs-eyebrow); line-height: 1.35;
}








.rideshare-manual-row {
  display: flex; align-items: center; gap: 8px;
  padding: 3px 0; min-width: 0;
  font-size: var(--fs-cell);
}
.rideshare-manual-when { flex: 0 0 auto; color: var(--muted); }
.rideshare-manual-who {
  flex: 1 1 auto; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}


.rideshare-manual-row > strong {
  flex: 0 0 auto; font-variant-numeric: tabular-nums;
}
.rideshare-manual-row .rideshare-edit { flex: 0 0 auto; }





.rideshare-manual-what {
  flex: 0 0 4.6rem; min-width: 0;
  color: var(--muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}


.rideshare-manual-row .rideshare-forget {
  flex: 0 0 auto;
  color: var(--danger, #d9534f);
}


.rideshare-report-note {
  grid-column: 1 / -1;
  margin: 0 0 2px; color: var(--muted);
  font-size: var(--fs-eyebrow); line-height: 1.35;
}




.rideshare-reported {
  font-style: normal; font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: .02em;
  color: var(--muted); margin-left: 6px;
  


  background: var(--group); border-radius: var(--radius-pill);
  padding: 1px 5px; line-height: 1;
}









.rideshare-day-dow {
  


  display: inline-block; min-width: 3.9ch; margin-right: 6px;
  color: var(--muted); font-style: normal; font-weight: 600;
}

.rideshare-edit,
.rideshare-forget {
  border: 0; background: none; color: var(--accent-line); cursor: pointer;
  font-size: var(--fs-eyebrow); font-weight: 600;
  padding: 0 4px; line-height: 1;
}



#schedule-drift.is-soft {
  border-color: var(--line);
  background: var(--surface-2);
  color: var(--ink);
}
#schedule-drift.is-soft strong { color: var(--ink); }



#schedule-drift { position: relative; padding-right: 34px; }
.drift-dismiss {
  position: absolute; top: 6px; right: 6px;
  border: 0; background: none; color: inherit; opacity: .55;
  font-size: 20px; line-height: 1; cursor: pointer;
  padding: 4px 8px;              
}
.drift-dismiss:hover, .drift-dismiss:focus-visible { opacity: 1; }































#txn-detail-dialog .dialog-content { padding-block: 4px 16px; }






#personal-txn-dialog .dialog-content,
#txn-search-dialog .dialog-content,
#txn-rule-dialog .dialog-content,
#tag-rules-dialog .dialog-content { padding-block-end: var(--space-5); }










.rideshare-report-label::after {
  content: "\203A"; display: inline-block; margin-left: 6px;
  transform: rotate(90deg); transition: transform 160ms var(--ease);
  color: var(--muted);
}
.rideshare-report[open] .rideshare-report-label::after { transform: rotate(-90deg); }
@media (prefers-reduced-motion: reduce) {
  .rideshare-report-label::after { transition: none; }
}

.rideshare-report-form select,
.rideshare-report-form input {
  width: 100%; box-sizing: border-box;
  min-height: 44px; padding: 10px 12px;
}
.rideshare-report-form select {
  

  padding-right: 32px;
  font-size: 16px;                    
  border: 1px solid var(--input-border); border-radius: var(--radius-md);
  background: var(--input-bg); color: var(--ink);
}



.txn-detail { margin: 0; display: grid; gap: 0; }
.txn-detail-row {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; padding: 9px 0;
}
.txn-detail-row + .txn-detail-row { border-top: 1px solid var(--line); }
.txn-detail-row > dt {
  flex: 0 0 auto; font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: 0.01em; color: var(--muted);
}
.txn-detail-row > dd {
  margin: 0; flex: 1 1 auto; min-width: 0; text-align: right;
  font-size: var(--fs-figure); font-variant-numeric: tabular-nums;
  


  font-weight: 600;
}




.txn-detail-row.is-full { display: block; padding-top: 12px; }
.txn-detail-row.is-full > dd {
  text-align: left; margin-top: 4px; white-space: pre-wrap;
  overflow-wrap: anywhere; font-size: 13px; color: var(--muted);
}



.txn-detail-controls {
  margin: var(--space-3) 0 0; display: grid; gap: 12px;
}



.txn-detail-controls > label {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; min-width: 0;
}
.txn-detail-controls > label > select { width: auto; max-width: 62%; }
.txn-detail-controls > label > input[type="text"] { flex: 1 1 auto; width: auto; min-width: 0; }
.txn-detail-controls > label[hidden] { display: none; }
.txn-detail-controls > label > span {
  font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: 0.01em;
  color: var(--muted);
}



.txn-detail-controls select,
.txn-detail-controls input[type="text"] {
  width: 100%; box-sizing: border-box; min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--input-border, var(--line));
  border-radius: var(--radius-md);
  background: var(--input-bg, var(--surface-2)); color: var(--ink);
}




.txn-detail-controls > label.txn-detail-check {
  display: flex; align-items: center; justify-content: flex-start; gap: 10px;
  min-height: 44px;
}
.txn-detail-controls > label.txn-detail-check > span {
  font-size: var(--fs-cell); font-weight: 600; color: var(--ink);
  letter-spacing: 0;
}


.txn-tag {
  







  











  









  flex: 0 0 auto; font-size: 10px; font-weight: 700; padding: 5px 4px;
  min-height: 26px; border: 1px solid var(--line); border-radius: var(--radius-pill);
  background: none; color: var(--muted); cursor: pointer; white-space: nowrap;
  





  appearance: none; -webkit-appearance: none;
  text-align: center; text-align-last: center;
  width: auto; max-width: 100%;
  

  vertical-align: middle;
}




.txn-tag { max-width: 100%; min-width: 0; flex-shrink: 1;
           text-overflow: ellipsis; overflow: hidden; }
.txn-tag option { color: var(--ink); background: var(--surface); }















.txn-tag-shell {
  position: relative; display: inline-flex; flex: 0 0 auto;
  min-width: 0; max-width: 100%;
}
.txn-tag-face {
  



  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto; font-size: 10px; font-weight: 700; padding: 5px 4px;
  min-height: 26px; border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  color: var(--muted); white-space: nowrap;
  min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
  pointer-events: none;
}
.txn-tag-face.is-manual { border-color: var(--accent); color: var(--accent-line); }
.txn-tag-face.is-untagged { border-style: dashed; }

.txn-tag-shell > .txn-tag {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none;
  margin: 0; padding: 0; border: 0; opacity: 0;
}


.txn-tag.is-manual { border-color: var(--accent); color: var(--accent-line); }
.txn-tag.is-untagged { border-style: dashed; }
.txn-tag:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

.tag-picker-options { display: grid; gap: 8px; }
.tag-picker-option {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; min-height: 48px; padding: 12px 14px; cursor: pointer;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface-2); color: var(--ink);
  font-size: var(--fs-figure); font-weight: 600; text-align: left;
}
.tag-picker-option.is-current { border-color: var(--accent); color: var(--accent-line); }
.tag-picker-option.is-current::after { content: "\2713"; font-weight: 700; }



















input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select,
textarea { font-size: 16px; }



























@media (max-width: 360px) {
  .rideshare-week-head { grid-template-columns: minmax(0, 1fr) auto; }
  .rideshare-week-head > .rideshare-legend-sm {
    grid-column: 1 / -1; justify-content: flex-start; gap: 14px;
    margin-top: 2px;
  }
}































.category-pie.is-opening,
.category-pie:not([hidden]) {
  display: grid;
  






  









  

















  












  transition: height 360ms cubic-bezier(0.4, 0, 0.2, 1),
              padding-block 360ms cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
  






  







  contain: layout paint;
}





.category-pie.is-animating { will-change: height; }
.category-pie.is-collapsed {
  

  padding-block: 0; margin-block: 0; border-block-width: 0;
}
.category-pie > .category-pie-inner { min-height: 0; overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  .kpi-budget .bar i, .track .bar i,
  .rideshare-bar-sm > span, .bar-col-track > i { transition: none; }
  .category-pie.is-opening, .category-pie:not([hidden]) { transition: none; }
  .category-pie.is-collapsed { padding-block: 0; margin-block: 0; }
}
.category-pie {
  position: sticky; top: 0; z-index: 4;
  margin: var(--space-3) 0 0; padding: var(--space-3);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}







.category-pie > .projection-head:first-child { margin-top: 0; }























.rideshare-report-form > .rs-f-earned {
  flex: 1 1 100%;
  margin-top: 6px; padding-top: 8px;
  border-top: 1px solid var(--line);
  






  display: flex; align-items: center; gap: 8px;
}







.rideshare-report-form > .rs-f-earned > .auth-field {
  display: flex; align-items: baseline; gap: 3px;
  flex: 1 1 auto; min-width: 0;
}











.rideshare-report-form .rs-f-lead {
  flex: 0 0 4.6rem; min-width: 0;
  font-size: var(--fs-eyebrow); color: var(--muted); font-weight: 500;
  display: flex; align-items: center;
}




.rideshare-report-form .rs-f-kind select {
  appearance: none; -webkit-appearance: none;
  background: transparent; border: 0; padding: 0 14px 0 0;
  font-size: var(--fs-eyebrow); color: var(--muted); font-weight: 500;
  width: 100%; height: 100%;
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%),
                    linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: right 4px center, right 1px center;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
}



.rideshare-report-form > .rs-f-day {
  flex: 1 1 100%;
}

















.rideshare-report-form .rs-f-earned > .rs-f-amount {
  flex: 0 0 5.4rem; min-width: 0;
}






.rideshare-report-form .rs-f-earned > .form-actions {
  margin-left: auto;
}























.rideshare-report-form > .rs-f-earned {
  margin-top: 3px; padding-top: 5px;
}


.rideshare-report-form > .rs-f-day input {
  font-size: var(--fs-cell);
}










.rideshare-report-form .rs-f-kind select {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  









  min-height: 0; height: auto;
}
.rideshare-report-form .rs-f-kind {
  align-items: center;
  position: relative;
}



.rideshare-report-form .rs-f-kind::after {
  content: "";
  position: absolute; left: 0; top: 50%;
  transform: translateY(-50%);
  width: 100%; min-height: 44px; height: 100%;
}





















.rideshare-report-form .rs-f-kinds {
  flex: 1 1 100%;
  display: flex; align-items: center; gap: 8px;
  min-width: 0;
  





  flex-wrap: wrap;
}
.rideshare-report-form .rs-seg {
  display: flex; flex: 0 0 auto;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  overflow: hidden;
}
.rideshare-report-form .rs-seg-btn {
  border: 0; background: none; color: var(--muted);
  font: inherit; font-size: var(--fs-eyebrow); font-weight: 600;
  padding: 0 9px; height: 26px; cursor: pointer;
  


}
.rideshare-report-form .rs-seg-btn + .rs-seg-btn {
  border-left: 1px solid var(--line);
}
.rideshare-report-form .rs-seg-btn[aria-pressed="true"] {
  background: var(--accent); color: var(--on-accent);
}





.rideshare-report-form .rs-f-day {
  margin-left: auto; flex: 0 1 auto; min-width: 0;
}
.rideshare-report-form .rs-f-day input {
  background: none; border: 0; padding: 0; height: 26px;
  color: var(--muted); font-size: 16px; font-weight: 500;
  font-family: inherit; width: auto; max-width: 100%;
}


.rideshare-report-form .rs-f-row {
  flex: 1 1 100%;
  display: flex; align-items: center; gap: 8px;
  margin-top: 4px; min-width: 0;
}



.rideshare-report-form .rs-f-row + .rs-f-row {
  margin-top: 4px; padding-top: 0; border-top: 0;
}











.rideshare-report-form .rs-f-row .rs-f-amount {
  display: flex; align-items: center; gap: 4px;
  background: none; border: 0; border-radius: 0;
  border-bottom: 1px solid var(--line);
  padding: 0; height: 34px; min-width: 0;
  flex: 1 1 3.4rem;
}
.rideshare-report-form .rs-f-row .rs-f-amount:focus-within {
  border-bottom-color: var(--accent-line);
}
.rideshare-report-form .rs-f-row .rs-f-amount input {
  background: none; border: 0; padding: 0; height: 100%;
  flex: 1 1 auto; min-width: 0; width: 100%;
  font-size: 16px;      
}
.rideshare-report-form .rs-f-row .rs-f-tag {
  flex: 0 0 auto; font-size: var(--fs-eyebrow); color: var(--muted);
  font-weight: 500;
}






.rideshare-report-form .rs-f-row .form-actions { gap: 8px; }
.rideshare-report-form .rs-f-row .button.primary {
  background: none; color: var(--accent-line);
  border: 0; box-shadow: none;
  height: 34px; padding: 0 2px; font-weight: 600;
}
.rideshare-report-form .rs-f-row .button.primary:active {
  color: var(--accent);
}
.rideshare-report-form .rs-f-row .button.secondary {
  height: 34px; padding: 0 6px;
}


.rideshare-report-form .rs-f-row .rs-f-kind {
  flex: 0 0 auto; position: relative;
  display: flex; align-items: center;
}
.rideshare-report-form .rs-f-row .rs-f-kind select {
  height: 34px; min-height: 0; width: auto;
  padding: 0 14px 0 0;
}














.rideshare-report-form .rs-f-row .rs-f-amount input:focus-visible,
.rideshare-report-form .rs-f-row .rs-f-amount input:focus {
  outline: none; box-shadow: none;
}
.rideshare-report-form .rs-f-row .rs-f-amount:focus-within {
  border-bottom-width: 2px; border-bottom-color: var(--accent-line);
  

  padding-bottom: 0; margin-bottom: -1px;
}





.rideshare-report-form .rs-seg-btn { padding: 0 8px; }











.rideshare-report-form .rs-f-day { min-width: 0; }
.rideshare-report-form .rs-f-day input {
  min-width: 0; max-width: 100%;
}















.rideshare-report-form .rs-f-row .rs-f-amount {
  flex: 0 1 6.5rem;
}









.rideshare-report-form .rs-f-row .form-actions { margin-left: 0; }












.rs-mix-fold {
  border: 0; background: none; padding: 0; margin: 0;
  font: inherit; color: inherit; letter-spacing: inherit;
  text-transform: inherit; cursor: pointer;
  display: flex; align-items: center; gap: 6px;
  min-width: 0; text-align: left;
  

  align-self: center;
}



.rs-mix-fold { position: relative; }
.rs-mix-fold::after {
  content: ""; position: absolute;
  left: -8px; right: -8px; top: -10px; bottom: -10px;
}
.rs-mix-fold .rs-sec-caret { flex: 0 0 auto; color: var(--muted); }


.rs-mix-fold.is-folded .rs-sec-caret { transform: rotate(-90deg); }

.category-pie-body {
  display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
}
.category-pie-body > svg {
  




  width: 84px; height: 84px; flex: 0 0 auto;
  
  transform: rotate(-90deg);
}


.pie-subcats {
  display: flex; align-items: center; gap: 8px;
  margin: 10px 2px 2px; color: var(--muted);
  font-size: var(--fs-eyebrow); font-weight: 600; cursor: pointer;
}
.pie-subcats input { width: 16px; height: 16px; accent-color: var(--accent); }







.pie-scope {
  display: flex; align-items: center; gap: 6px;
  margin: 8px 2px 2px; flex-wrap: wrap;
}

.category-pie-legend {
  flex: 1 1 150px; min-width: 0; margin: 0; padding: 0; list-style: none;
  display: grid; gap: 0;
}
.category-pie-legend > li { display: block; }




.pie-row {
  










  









  display: grid; grid-template-columns: 10px minmax(0, 1fr) 4ch 7ch;
  align-items: baseline; gap: 6px;
  








  width: 100%; min-height: 26px; padding: 1px 6px;
  margin: 0; border: 0; border-radius: 8px;
  background: none; color: inherit; text-align: left;
  font: inherit; font-size: 12px; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}


.pie-row.is-static { cursor: default; }






@media (hover: hover) {
  .pie-row:hover { background: var(--surface-2); }
}





.pie-row[aria-pressed="true"] {
  background: var(--surface-2);
  box-shadow: inset 2px 0 0 var(--accent);
}
.category-pie-legend.has-selection .pie-row[aria-pressed="false"] { opacity: 0.45; }



.pie-trend { margin-top: 12px; }
.pie-trend-title {
  margin: 0 0 6px; font-size: var(--fs-eyebrow); font-weight: 700;
  letter-spacing: 0.02em; color: var(--muted); text-transform: uppercase;
}
.pie-trend-rows { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }










.pie-trend-row { display: block; }
.pie-trend-open {
  display: grid; grid-template-columns: 6ch minmax(0, 1fr) 7ch;
  align-items: center; gap: 8px; min-height: 20px;
  font-size: 12px;
  width: 100%; margin: 0; padding: 2px 0; border: 0; border-radius: 6px;
  background: none; color: inherit; text-align: left; font-family: inherit;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.pie-trend-open:hover { background: var(--surface-2); }



.pie-trend-detail {
  margin: 2px 0 6px 6ch; padding: 0 8px 0 8px; list-style: none;
  display: grid; gap: 2px;
}
.pie-trend-detail > li {
  display: grid; grid-template-columns: 10px minmax(0, 1fr) 7ch;
  align-items: baseline; gap: 6px;
  font-size: 12px; color: var(--muted);
}
.pie-trend-detail .pie-amount {
  text-align: right; color: var(--ink); font-weight: 700;
  font-variant-numeric: tabular-nums;
}







.pie-trend-when {
  color: var(--muted); white-space: nowrap;
  display: flex; flex-direction: column; line-height: 1.2;
}



.pie-trend-running { font-size: 9px; letter-spacing: 0.02em; opacity: 0.75; }




.pie-trend-bar {
  display: flex; flex-wrap: nowrap; width: 100%; height: 10px;
  border-radius: var(--radius-pill); overflow: hidden;
  background: var(--surface-2);
}


.pie-trend-seg { min-width: 2px; height: 100%; }
.pie-trend-total {
  text-align: right; font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.pie-key { width: 10px; height: 10px; border-radius: 3px; align-self: center; }
.pie-name { color: var(--ink); min-width: 0;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }


.pie-share { color: var(--muted); font-variant-numeric: tabular-nums;
             text-align: right; }
.pie-amount { font-variant-numeric: tabular-nums; text-align: right; }







.settings-build {
  margin: var(--space-3) 0 0; text-align: center;
  color: var(--muted); font-size: var(--fs-eyebrow);
  font-variant-numeric: tabular-nums; letter-spacing: .04em;
}

.settings-menu {
  display: grid; gap: 16px; padding: 12px 0 6px;
}
.settings-group { min-width: 0; }
.settings-group-title {
  margin: 0 0 4px; color: var(--muted); font-size: 10px;
  font-weight: 700; letter-spacing: .12em; line-height: 1.4;
  text-transform: uppercase;
}
.settings-group-rows {
  border-block: 1px solid var(--line);
}
.settings-row {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: 100%; min-height: 44px; padding: 8px 0;
  margin: 0; border: 0; border-bottom: 1px solid var(--line);
  background: none; color: inherit; text-align: left;
  font: inherit; cursor: pointer;
}
.settings-row:last-child { border-bottom: 0; }
.settings-row:hover { background: var(--surface-2); }
.settings-row-name { font-size: 13px; font-weight: 600; color: var(--ink); }



.settings-row-value {
  font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums;
}
.settings-row-value::after { content: " \203A"; color: var(--muted); }




.goal-row {
  

  display: grid; grid-template-columns: 7ch minmax(0, 1fr);
  align-items: center; gap: 6px; margin-top: 2px;
}






.goal-input { text-align: right; }






#cal-prev, #cal-next {
  min-width: 44px; min-height: 44px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-color: transparent; background: none; color: var(--muted);
  font-size: 20px; line-height: 1;
}
#cal-prev:hover, #cal-next:hover,
#cal-prev:focus-visible, #cal-next:focus-visible {
  background: var(--btn-secondary-bg); color: var(--ink);
  border-color: var(--btn-secondary-border);
}


















.settings-head {
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 2px; min-width: 0;
}
.settings-head > div { min-width: 0; }


#settings-dialog .dialog-header { align-items: flex-start; }


.settings-back {
  display: inline-flex; align-items: center; gap: 2px;
  


  min-height: 44px; padding: 0 8px 0 0; margin: -9px 0 -9px 0;
  border: 0; background: none; cursor: pointer;
  color: var(--accent-line); font: inherit; font-size: 13px; font-weight: 650;
}
.settings-back > span { font-size: 19px; line-height: 1; }
.settings-back:hover, .settings-back:focus-visible { color: var(--ink); }
.settings-back[hidden] { display: none; }






.floor-summary { align-items: center; }




.floor-summary-main { display: grid; gap: 1px; min-width: 0; text-align: left;
  flex: 1 1 auto; }
.floor-summary-detail {
  font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums;
}





.floor-summary > .settings-row-value { font-size: var(--fs-figure);
  font-weight: 700; color: var(--ink); }




.floor-field {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  

  padding: 12px 0; border-bottom: 1px solid var(--line);
}
.floor-field:last-child { border-bottom: 0; }
.floor-field-text { display: grid; gap: 1px; min-width: 0; }
.floor-field-name { font-size: 13px; font-weight: 600; color: var(--ink); }
.floor-field-help { font-size: 11px; color: var(--muted); line-height: 1.35; }
.floor-field .floor-input { width: 7ch; flex: 0 0 auto; }






.floor-field.is-stacked {
  display: block;
}
.floor-field.is-stacked .floor-field-text { margin-bottom: 8px; }
.floor-field.is-stacked .floor-input { width: 100%; }









.floor-field .floor-input.is-text { width: 14ch; text-align: left; }




.floor-field .floor-input, .floor-field .floor-select {
  

  height: 34px; min-height: 34px; padding-block: 0;
}



.floor-field input[type="date"].floor-select { height: 34px; }
.floor-field-toggle { cursor: pointer; }
.floor-field-toggle input { width: 20px; height: 20px; accent-color: var(--accent); }










#settings-dialog .settings-level { padding-inline: 0; }







#bill-edit-dialog .dialog-content { padding: 4px 16px 16px; }


.field-count { font-style: normal; font-weight: 600; color: var(--muted); }
.field-count.is-low { color: var(--warning); }



.budget-bills-table td:first-child .account-name {
  display: block; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}



#settings-dialog .settings-level .priority-list {
  list-style: none; margin: 0; padding: 0;
}
.priority-row {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 0; border-bottom: 1px solid var(--line);
}
.priority-row:last-child { border-bottom: 0; }
.priority-rank {
  flex: 0 0 auto; width: 22px; text-align: center;
  font-size: 13px; font-weight: 700; color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.priority-name { flex: 1 1 auto; min-width: 0; font-size: 13px; font-weight: 600; }
.priority-moves { flex: 0 0 auto; display: flex; gap: 6px; }


.priority-move {
  min-width: 44px; min-height: 44px; border-radius: var(--radius-md);
  border: 1px solid var(--line); background: var(--group);
  color: var(--ink); font-size: 15px; line-height: 1; cursor: pointer;
}
.priority-move[disabled] { opacity: 0.35; cursor: default; }





#settings-dialog .settings-menu { padding-inline: 0; }








#settings-dialog .settings-row { padding-inline: 16px; }




.floor-select {
  flex: 0 0 auto; min-width: 0; max-width: 46%;
  padding: 6px 8px; border-radius: var(--radius-sm);
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
  font: inherit; font-size: 16px; font-weight: 600;
}



.settings-row.is-static { cursor: default; }



.settings-row.is-static .settings-row-value {
  






  min-width: 9ch; text-align: right;
}
.settings-row.is-static:hover { background: none; }
.settings-row.is-static .settings-row-value::after { content: ""; }
.txn-rule-actions { display: flex; align-items: baseline; gap: 12px;
  flex: 0 0 auto; }

.floor-fields { display: block; }
.floor-input-wide { width: 14ch; }





#txn-rule-dialog .floor-field-text { flex: 0 0 5.5em; }  
#txn-rule-dialog .floor-field .floor-select,
#txn-rule-dialog .floor-field .floor-input-wide {
  flex: 1 1 auto; width: auto; max-width: none; min-width: 0;
  text-align: left; font-weight: 400;
}




#toast { display: inline-flex; align-items: center; gap: 12px; }
.toast-action {
  flex: 0 0 auto; min-height: 32px; padding: 0 4px; margin: -6px 0;
  border: 0; background: none; cursor: pointer;
  color: var(--accent-line); font: inherit; font-weight: 700;
}
.toast-action:hover, .toast-action:focus-visible { color: var(--ink); }












































dialog[open] { animation: sheet-in var(--motion-base) var(--ease-spring); }
@keyframes sheet-in {
  


  



  from { opacity: 0; transform: translateY(40px) scale(0.92); }
}
dialog[open]::backdrop { animation: backdrop-in var(--motion-base) var(--ease); }
@keyframes backdrop-in { from { opacity: 0; } }





.settings-level:not([hidden]), #settings-menu:not([hidden]) {
  animation: level-in var(--motion-base) var(--ease-spring) both;
}
@keyframes level-in {
  from { opacity: 0; transform: translateX(48px); }
  to   { opacity: 1; transform: none; }
}






.settings-row:active:not(.is-static),
.floor-summary:active:not(.is-static),
.pie-row:active,
.txn-row[data-open-txn]:active {
  transform: scale(0.955); background: var(--surface-2);
}
.settings-row, .pie-row, .txn-row[data-open-txn] {
  transition: transform var(--motion-fast) var(--ease),
              background var(--motion-fast) var(--ease);
}




.value-changed { animation: value-flash var(--motion-slow) var(--ease); }



@keyframes value-flash {
  0%   { color: var(--accent-line); background: var(--surface-2); }
  100% { color: inherit; background: transparent; }
}


#toast { transition: opacity var(--motion-base) var(--ease),
                     transform var(--motion-base) var(--ease); }
#toast:not(.visible) { opacity: 0; transform: translateY(6px); }
#toast.is-success::before {
  content: "✓"; display: grid; place-items: center; flex: 0 0 20px;
  width: 20px; height: 20px; border-radius: 50%;
  color: var(--surface); background: var(--success);
  font-weight: 800; line-height: 1;
  animation: toast-success-in var(--motion-fast) var(--ease-spring) both;
}
@keyframes toast-success-in {
  from { opacity: 0; transform: scale(.72); }
  to { opacity: 1; transform: scale(1); }
}




::view-transition-old(root) {
  animation: theme-old-out 180ms var(--ease) both;
}
::view-transition-new(root) {
  animation: theme-new-in 180ms var(--ease) both;
}
@keyframes theme-old-out { to { opacity: 0; } }
@keyframes theme-new-in { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  dialog[open], dialog[open]::backdrop,
  .dashboard-view:not([hidden]) { animation: none; }
  #toast { transition: none; }
  #toast:not(.visible) { transform: none; }
  .settings-level:not([hidden]), #settings-menu:not([hidden]),
  .value-changed, #toast.is-success::before { animation: none; }
  .settings-row:active, .floor-summary:active, .pie-row:active,
  .txn-row[data-open-txn]:active { transform: none; }
  .settings-row, .pie-row, .txn-row[data-open-txn] { transition: none; }
}








.rideshare-actions { align-items: center; margin-bottom: var(--space-3); }



.rideshare-actions > .link-button,
.rideshare-actions > .rideshare-report > summary {
  min-height: 44px; display: inline-flex; align-items: center; padding: 0;
}








.rideshare-actions > .rideshare-report {
  align-self: center; border-top: 0; margin-top: 0; padding-top: 0;
}


.rideshare-actions > .rideshare-report { flex: 0 0 auto; }
.rideshare-actions > .rideshare-report[open] { flex: 1 1 100%; margin-top: 8px; }
.rideshare-report-head {
  cursor: pointer; list-style: none;
  color: var(--accent-line); font-size: 13px; font-weight: 650;
}
.rideshare-report-head::-webkit-details-marker { display: none; }










.rideshare-month-group > summary { font-size: var(--fs-figure); }





.rideshare-month-group > summary { justify-content: space-between; }
.rideshare-month-group > summary > strong {
  font-variant-numeric: tabular-nums; margin-left: auto;
}













.rideshare-year-group > summary {
  font-size: var(--fs-figure); font-weight: 800;
  justify-content: space-between;
}
.rideshare-year-group > summary > strong {
  font-variant-numeric: tabular-nums; margin-left: auto;
}


.rideshare-year-group > .rideshare-month-group {
  border-top: 0; padding-left: 10px; padding-top: 4px; padding-bottom: 4px;
}
.rideshare-year-group > .rideshare-month-group + .rideshare-month-group {
  border-top: 1px solid var(--line);
}






.rideshare-week-head { padding: 4px 0 3px; }
.rideshare-legend-sm { margin: 2px 0 3px; }
.rideshare-bar-sm { margin-bottom: 4px; }




.rideshare-provisional {
  font-style: normal; font-size: var(--fs-eyebrow); font-weight: 700;
  color: var(--muted); margin-left: 5px; letter-spacing: 0.04em;
  text-transform: uppercase;
}





.rideshare-goal-line {
  display: flex; align-items: baseline; justify-content: space-between;
  


  gap: 10px; flex-wrap: nowrap;
}
.rideshare-goal-line > p { margin: 0; }














.rideshare-goal-line > .rideshare-status { font-size: var(--fs-cell); }
.rideshare-goal-line > .password-help { font-size: var(--fs-eyebrow); }
.rideshare-goal-line { gap: 6px; }



.rideshare-goal-line > .link-button.is-inline { flex: 0 0 auto; }









@media (max-width: 389px) {
  .rideshare-goal-line { flex-wrap: wrap; row-gap: 2px; }
  

  .rideshare-goal-line > .password-help { flex: 1 0 100%; }
}




.rideshare-goal-line > .link-button.is-inline {
  margin-right: auto; font-size: var(--fs-eyebrow); font-weight: 600;
  padding: 0; align-self: baseline;
}
.rideshare-goal-line > #rideshare-dialog-note {
  text-align: right; min-width: 0; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}

.rideshare-goal-line > #rideshare-status { white-space: nowrap; }




.bill-edit-open {
  border: 0; background: none; padding: 0; margin: 0; cursor: pointer;
  font: inherit; color: inherit; text-align: left;
}
.bill-edit-open:hover, .bill-edit-open:focus-visible { color: var(--accent-line); }






















.masked-figure {
  user-select: none; -webkit-user-select: none;
  letter-spacing: .06em;
  

  color: var(--muted);
}
#mask-balances .mask-eye-off { display: none; }
#mask-balances[aria-pressed="true"] .mask-eye { display: none; }
#mask-balances[aria-pressed="true"] .mask-eye-off { display: inline; }
#mask-balances[aria-pressed="true"] { color: var(--accent-line); border-color: var(--accent-line); }




.privacy-toggle {
  display: flex; align-items: flex-start; gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.privacy-toggle:last-of-type { border-bottom: 0; }
.privacy-toggle input { flex: 0 0 auto; margin-top: 2px; width: 20px; height: 20px; accent-color: var(--accent-fill); }
.privacy-toggle-text { display: grid; gap: 3px; }
.privacy-toggle-name { font-weight: 600; }
.privacy-toggle-note { color: var(--muted); font-size: 12px; line-height: 1.45; }
.privacy-note { margin: var(--space-4) 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }







.txn-elsewhere {
  margin-left: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
  





  min-width: 0; overflow: hidden; text-overflow: ellipsis;
  





  flex: 0 200 auto;
}



.txn-row > .txn-name { overflow: hidden; }


.txn-row.is-attributed .txn-amount { opacity: .55; }





.txn-row.is-attributed-in .txn-amount {
  opacity: .55; font-style: italic;
}




.txn-elsewhere { min-width: 4.5em; }
@media (max-width: 360px) { .txn-elsewhere { display: none; } }












#view-payday .budget-income-table td.number,

























#view-payday #kpi-budget-net,
#view-payday .surplus-panel .track-balance > strong {
  font-size: var(--fs-money);
  font-weight: 600;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}





.history-range {
  display: flex; gap: 4px;
  margin: 0 0 var(--space-3);
}
.history-range .seg {
  flex: 1 1 0;
  min-height: 34px;
  padding: 0 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: none;
  color: var(--muted);
  font-size: 12px; font-weight: 700;
  cursor: pointer;
}
.history-range .seg.is-on {
  background: var(--surface-2);
  border-color: var(--accent-line);
  color: var(--ink);
}
.history-range .seg:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }






.history-range.pie-shape { margin: 8px 0 0; }



#history-charts-dialog .tab-panel > .history-range .seg,
.history-range.pie-shape .seg, .history-range.trend-grain .seg {
  flex: 0 0 auto; min-height: 28px; padding: 0 12px; font-size: 11px;
}
.pie-trend-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
}
.history-range.trend-grain { margin: 0; }




.pie-trend-year {
  margin: 10px 0 2px; color: var(--muted);
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.01em;
}
.pie-trend-year:first-child { margin-top: 0; }




.pie-bar { display: none; }
.category-pie-legend.is-bars .pie-row { display: grid; align-items: center;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  grid-template-areas: "key name share amount" "bar bar bar bar";
  row-gap: 4px; }
.category-pie-legend.is-bars .pie-key { grid-area: key; }
.category-pie-legend.is-bars .pie-name { grid-area: name; }
.category-pie-legend.is-bars .pie-share { grid-area: share; }
.category-pie-legend.is-bars .pie-amount { grid-area: amount; }
.category-pie-legend.is-bars .pie-bar {
  grid-area: bar; display: block; height: 8px; border-radius: var(--radius-pill);
  background: var(--bar-track); overflow: hidden;
}


.category-pie-legend.is-bars .pie-bar > i {
  display: block; height: 100%; border-radius: inherit;
}



.category-pie-body.is-bars > svg { display: none; }
.category-pie-body.is-bars .category-pie-legend { flex: 1 1 100%; }

.category-pie-body.is-bars { margin-top: 12px; }


.spend-bar {
  border: 0; background: none; padding: 0; font: inherit; color: inherit;
  cursor: pointer;
}
.spend-bar:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }


.spend-bar.is-selected .spend-track > span { outline: 2px solid var(--accent-line); outline-offset: 1px; }
.spend-bar.is-selected .spend-label { color: var(--ink); }

.history-months { margin-top: var(--space-4); }


.txn-row.is-static {
  grid-template-columns: auto minmax(0, 1fr) 10ch;
  cursor: default;
}





























body.is-pointer :focus-visible { outline: none !important; }


body.is-pointer .icon-button:focus-visible {
  background: none; border-color: transparent; color: var(--muted);
}




.money-value { font-variant-numeric: tabular-nums; }
















.button,
.track.is-openable,
.cash-card.is-openable {
  --press-lift: 3px;
  





  transform: translateY(0);
  box-shadow:
    0 var(--press-lift) 0 rgba(0, 0, 0, .38),
    0 calc(var(--press-lift) + 3px) 10px rgba(0, 0, 0, .26),
    var(--raise-edge);
  transition:
    background var(--motion-fast) var(--ease),
    border-color var(--motion-fast) var(--ease),
    transform 130ms var(--ease-spring),
    box-shadow 130ms var(--ease-spring),
    filter 130ms var(--ease);
}
.button.is-pressed,
.track.is-openable.is-pressed,
.cash-card.is-openable.is-pressed {
  transform: translateY(var(--press-lift));
  box-shadow:
    0 0 0 rgba(0, 0, 0, .38),
    0 1px 3px rgba(0, 0, 0, .30),
    var(--raise-edge);
  filter: brightness(0.96);
}


.icon-only { --press-lift: 2px; }
@media (prefers-reduced-motion: reduce) {
  .button, .track.is-openable, .cash-card.is-openable { transition:
    background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease); }
  .button.is-pressed,
  .track.is-openable.is-pressed,
  .cash-card.is-openable.is-pressed { transform: none; filter: none; }
}





dialog.is-sheet-animating { animation: none !important; }













dialog.is-sheet-animating::backdrop {
  backdrop-filter: none; -webkit-backdrop-filter: none;
}






dialog.is-sheet-closing::backdrop {
  







  animation: backdrop-out var(--sheet-out-ms, 380ms) var(--ease) forwards;
}
@keyframes backdrop-out { to { opacity: 0; } }





.txn-skeleton { display: grid; gap: 1px; padding: 2px 0; }
.txn-skeleton > span {
  display: block; height: 34px; border-radius: 4px;
  background: linear-gradient(90deg,
    var(--surface-2) 0%, var(--line) 50%, var(--surface-2) 100%);
  background-size: 200% 100%;
  opacity: .5;
  animation: skeleton-sheen 1.4s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .txn-skeleton > span { animation: none; }
}



.history-avg-line {
  margin: var(--space-3) 0 4px; font-size: var(--fs-eyebrow);
  color: var(--muted); font-weight: 600;
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
}
.history-avg-line > strong {
  color: var(--ink); font-size: var(--fs-figure);
  font-variant-numeric: tabular-nums;
}



.category-pie .pie-clear {
  display: block; margin: 6px 0 0 auto; font-size: var(--fs-eyebrow);
}
.category-pie .pie-clear[hidden] { display: none; }





.rs-stmt-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 0 6px 12px;
}
.rs-stmt-note { color: var(--muted); font-size: var(--fs-eyebrow); }
.rs-stmt-add {
  min-height: 44px;            
  padding: 0 12px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  font-size: var(--fs-eyebrow);
  white-space: nowrap;
  cursor: pointer;
}
.rs-stmt-add:hover, .rs-stmt-add:focus-visible { border-style: solid; }
.rs-stmt-entry { display: inline-flex; gap: 6px; align-items: center; }
.rs-stmt-entry input {
  width: 6em;
  min-height: 44px;
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  font-size: var(--fs-body, 1rem);
  font-variant-numeric: tabular-nums;
}
.rs-stmt-save {
  min-height: 44px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background: var(--accent, #2f7d68);
  color: #fff;
  font-size: var(--fs-eyebrow);
  cursor: pointer;
}
.rs-stmt-save[disabled] { opacity: 0.6; }


















.track-spent {
  position: relative;
  




  min-height: 1.25em;
}
.track-outlook {
  













  







  








  justify-self: start;
  

  margin: 0;
  align-self: baseline;
  color: var(--warning);
  font-size: var(--fs-eyebrow);
  line-height: 1.3;
  white-space: nowrap;
}
.track-outlook[hidden] { display: none; }





















.rideshare-goal-line .rs-basis,
.rideshare-legend .rs-basis {
  appearance: none; -webkit-appearance: none;
  background: transparent; border: 0; border-radius: 0;
  min-height: 0; height: auto; width: auto;
  


  padding: 0 9px 0 0; margin: 0 0 0 6px;
  font: inherit; font-size: var(--fs-caption); color: var(--muted); line-height: inherit;
  cursor: pointer;
  

  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
                    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: right 3px center, right 0 center;
  background-size: 3px 3px, 3px 3px;
  background-repeat: no-repeat;
}


.rideshare-goal-line .rs-basis option,
.rideshare-legend .rs-basis option {
  

  background: var(--surface-2); color: var(--ink);
}


.rideshare-goal-line .rs-basis:focus-visible,
.rideshare-legend .rs-basis:focus-visible {
  outline: none;
  box-shadow: inset 0 -2px 0 0 var(--accent-line);
}



































.rideshare-legend {
  


  margin-top: 0;
}
.rideshare-goal-line { margin-top: 12px; }










.rideshare-pace-drawer { margin-top: 5px; }




.rs-quest {
  display: flex; flex-wrap: wrap; align-items: baseline;
  column-gap: 8px; row-gap: 0; margin-top: 5px;
}
.rs-quest[hidden] { display: none; }
.rs-quest-main { font-size: var(--fs-cell); font-weight: 600; color: var(--ink); }
.rs-quest-next { font-size: var(--fs-eyebrow); color: var(--muted); }
.rs-quest.is-met .rs-quest-main { color: var(--accent-line); }

.rs-quest { margin-top: 8px; }


.rideshare-report-form .rs-f-row .rs-f-quest-window {
  flex: 0 0 auto; height: 34px; min-height: 0; width: auto;
  padding: 0 4px 0 0; font-size: 16px;
  background: none; border: 0; border-bottom: 1px solid var(--line);
  border-radius: 0; color: var(--muted); font-weight: 500;
}
.rideshare-report-form .rs-f-row .rs-f-quest-tiers { flex: 1 1 8rem; }








.rideshare-legend > #rideshare-dialog-note {
  margin-left: auto; min-width: 0; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
  font-size: var(--fs-eyebrow); color: var(--muted);
}
.rideshare-legend > #rideshare-dialog-note .rs-basis { flex: 0 0 auto; }



.rideshare-legend .rs-leg-uber { color: var(--rideshare-uber); }
.rideshare-legend .rs-leg-lyft { color: var(--rideshare-lyft); }
.rideshare-legend .rs-leg-uber b, .rideshare-legend .rs-leg-lyft b {
  color: var(--ink);
}


.rideshare-goal-line > #rideshare-basis-slot { flex: 0 0 auto; }



@media (max-width: 389px) {
  .rideshare-legend { font-size: 10px; gap: 5px; }
}







.rideshare-card { gap: 8px; }
.rideshare-card .rideshare-head { gap: 8px; }
.rideshare-pace-drawer { margin-top: 3px; }
.rs-hist-key { row-gap: 2px; margin-bottom: 2px; }




















:root { --rs-safe-bottom: env(safe-area-inset-bottom, 0px); }
#rs-analytics-mix { padding-bottom: 8px; }
#rs-analytics-mix:not(.is-one-week) {
  padding-bottom: calc(18px + var(--rs-safe-bottom, 0px));
}






















#view-rideshare > .rideshare-card:first-child { margin-top: 8px; }








.rideshare-card { padding-top: 8px; padding-bottom: 10px; }





.rs-analytics-sheet { padding-top: 2px; }
.rs-analytics-tabs { margin-bottom: 2px; }








.rideshare-card { padding-bottom: 12px; }
.rs-hist-key { margin-bottom: 0; }
.rideshare-pace-drawer { margin-top: 2px; }


.rs-analytics-panel.is-active[data-rs-panel="mix"] { padding-bottom: 0; }
.rs-analytics-sheet { padding-bottom: 0; }






.rs-hist-key { gap: 0 9px; font-size: 10px; line-height: 1.25; }
.rs-hist-key > .rs-key-pick { padding: 3px 1px; margin: -3px 0; }



.rs-sec-head > .rs-period-pick { margin-left: auto; }
.rs-sec-head > .rs-period-pick select { height: 24px; padding-block: 2px; }

.rideshare-legend > #rideshare-left-wrap { display: none; }



.rideshare-report-head > .rs-card-collapse { margin-right: 2px; }
.rs-sec-head > .rs-period-pick { margin-left: 0; margin-right: auto; }






.rs-sec-head > .rs-period-pick select {
  background-image: none; text-decoration: underline dotted;
  text-underline-offset: 3px;
  height: 24px; padding: 2px 4px; border: 0; font-weight: 700;
  font-size: var(--fs-eyebrow); letter-spacing: .04em; text-transform: uppercase;
  color: var(--muted);
}






.rs-sec-head > .rs-period-switch {
  background: var(--group-nested); padding: 2px; border-radius: 999px;
  gap: 0; margin: 0;
}




.rs-sec-head > .rs-period-switch + .rs-period-switch {
  margin-left: 9px; padding-left: 11px;
  border-left: 1px solid var(--line); border-radius: 0 999px 999px 0;
  background-clip: padding-box;
}
.rs-sec-head > .rs-period-switch .rs-period-opt {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: .03em;
  padding: 3px 8px; border-radius: 999px; color: var(--muted);
  text-transform: uppercase;
}
.rs-sec-head > .rs-period-switch .rs-period-opt.is-active {
  background: var(--surface); color: var(--ink); box-shadow: var(--raise-edge);
}



[data-rs-section="detail"] > .rs-sec-head { gap: 4px; }
[data-rs-section="detail"] > .rs-sec-head > .rs-sec-toggle.is-bare {
  margin-right: 0; padding-right: 0;
}
[data-rs-section="detail"] > .rs-sec-head > .rs-sec-max { margin-left: auto; }










.rs-mix-month:not(.rs-mix-year) { padding-left: 10px; }
#rs-analytics-mix .rs-mix-month .rs-mix-week-block > summary.rs-mix-row,
#rs-analytics-mix .rs-mix-week-block > summary.rs-mix-row {
  padding-left: 20px;
}




.rs-hist-key { margin-top: 0; }
.rs-mix-row.is-head { padding-top: 0; }













#rs-analytics-mix .rs-mix-row.is-head { padding-left: 20px; }


#rs-analytics-mix .rs-mix-row.is-head > span.rs-mix-key {
  justify-content: center;
}



.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section="detail"] {
  border-top: 0; padding-top: 2px; margin-top: 2px;
}


.rs-summary-head { cursor: default; }
.rs-summary-head > .rideshare-head {
  flex: 1; margin-left: 0; justify-content: flex-start;
}
#rideshare-report > .rideshare-goal-line { justify-content: flex-start; gap: 8px; }
#rideshare-report .rideshare-report-label { flex: 0 0 auto; }
#rideshare-report .rideshare-goal-line > #rideshare-status { font-weight: 400; }
#rideshare-report .rideshare-goal-line > #rideshare-basis-slot { margin-left: auto; font-weight: 400; }




@media (max-width: 360px) {
  #rideshare-status .rs-goal-met-detail { display: none; }
}

.rs-summary-head > .rideshare-head { flex-wrap: nowrap; }
.rs-summary-head .rs-deposit-trigger {
  flex: 0 0 auto; white-space: nowrap; margin: 0 0 0 auto;
}
.rs-deposit-trigger[aria-expanded="true"] .rideshare-report-label::after { transform: rotate(-90deg); }
#rideshare-report > .rs-deposit-summary { display: none; }
.rs-summary-goal-line > #rideshare-basis-slot { margin-left: auto; }



.theme-choice-list {
  display: grid;
  gap: 8px;
}
.theme-choice {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface-2);
  color: var(--ink);
  text-align: left;
  box-shadow: var(--raise-edge);
}
.theme-choice[aria-pressed="true"] {
  border-color: var(--accent-line);
  box-shadow: inset 3px 0 0 var(--accent-line), var(--raise-edge);
}
.theme-choice-copy { min-width: 0; }
.theme-choice-name {
  display: block;
  font-size: var(--fs-figure);
  font-weight: 700;
}
.theme-choice-note {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: var(--fs-caption);
  line-height: 1.35;
}
.theme-choice-preview {
  display: grid;
  justify-items: end;
  gap: 7px;
}
.theme-swatches {
  display: flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--page);
}
.theme-swatch {
  width: 17px;
  height: 17px;
  border-radius: 4px;
}
.theme-choice-state {
  min-height: 16px;
  color: var(--accent-line);
  font-size: var(--fs-eyebrow);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.theme-choice-state:empty { visibility: hidden; }
.theme-note {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: var(--fs-caption);
}
@media (hover: hover) and (pointer: fine) {
  .theme-choice:hover { border-color: var(--accent-line); }
}
@media (max-width: 360px) {
  .theme-choice { padding-inline: 12px; gap: 8px; }
  .theme-swatch { width: 15px; height: 15px; }
}
.theme-swatch-forest-page { background: #10150f; }
.theme-swatch-forest-surface { background: #1e2722; }
.theme-swatch-forest-accent { background: #3fbe9d; }
.theme-swatch-forest-caution { background: #d09a5f; }
.theme-swatch-forest-success { background: #62c187; }
.theme-swatch-midnight-page { background: #081416; }
.theme-swatch-midnight-surface { background: #102326; }
.theme-swatch-midnight-accent { background: #2dd4bf; }
.theme-swatch-midnight-caution { background: #d69052; }
.theme-swatch-midnight-success { background: #52cfa3; }
.theme-swatch-graphite-page { background: #121211; }
.theme-swatch-graphite-surface { background: #23221f; }
.theme-swatch-graphite-accent { background: #d7b35c; }
.theme-swatch-graphite-caution { background: #c68c49; }
.theme-swatch-graphite-success { background: #91ad7d; }

.theme-swatch-navy-page { background: #07111f; }
.theme-swatch-navy-surface { background: #0f1d2e; }
.theme-swatch-navy-accent { background: #5da9e9; }
.theme-swatch-navy-caution { background: #d19b60; }
.theme-swatch-navy-success { background: #7fb89a; }
.theme-swatch-arctic-page { background: #1b2029; }
.theme-swatch-arctic-surface { background: #252c38; }
.theme-swatch-arctic-accent { background: #88c0d0; }
.theme-swatch-arctic-caution { background: #dda08b; }
.theme-swatch-arctic-success { background: #899c7a; }
.theme-swatch-copper-page { background: #160d09; }
.theme-swatch-copper-surface { background: #281b16; }
.theme-swatch-copper-accent { background: #d28a5b; }
.theme-swatch-copper-caution { background: #d47d52; }
.theme-swatch-copper-success { background: #899a7e; }






.track-head > strong, .track-head > strong .cad { white-space: nowrap; }
























.rs-analytics-sheet { padding: 4px 0 0; }







.rs-analytics-panel { }

































@keyframes rs-panel-in-right {
  from { opacity: 0; transform: translateX(100%); }
  12%  { opacity: 1; }
  to   { opacity: 1; transform: none; }
}
@keyframes rs-panel-in-left {
  from { opacity: 0; transform: translateX(-100%); }
  12%  { opacity: 1; }
  to   { opacity: 1; transform: none; }
}
@keyframes rs-panel-out-left {
  from { opacity: 1; transform: none; }
  88%  { opacity: 1; }
  to   { opacity: 0; transform: translateX(-100%); }
}
@keyframes rs-panel-out-right {
  from { opacity: 1; transform: none; }
  88%  { opacity: 1; }
  to   { opacity: 0; transform: translateX(100%); }
}
.rs-analytics-panel.is-active.from-right {
  animation: rs-panel-in-right var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
.rs-analytics-panel.is-active.from-left {
  animation: rs-panel-in-left var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}


.rs-analytics-panel.is-leaving {
  display: block; position: absolute; top: 0; left: 0; width: 100%;
  z-index: 0; pointer-events: none;
  





















  overflow: hidden;
}
.rs-analytics-panel.is-leaving.to-left {
  animation: rs-panel-out-left var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) both;
}
.rs-analytics-panel.is-leaving.to-right {
  animation: rs-panel-out-right var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) both;
}



.rs-analytics-sheet { position: relative; overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
  .rs-analytics-panel.is-active.from-right,
  .rs-analytics-panel.is-active.from-left,
  .rs-analytics-panel.is-leaving.to-left,
  .rs-analytics-panel.is-leaving.to-right { animation: none; }
  .rs-analytics-panel.is-leaving { display: none; }
}









.rs-analytics-sheet { max-height: none; overflow: visible; }




.rs-analytics-sheet.is-swapping { overflow: hidden; }












.rs-analytics-sheet.is-swapping #rs-analytics-weeks-chart .rs-hist {
  transition: none;
}















.rs-analytics-panel.is-active[data-rs-panel="mix"] {
  





  


  display: flex; flex-direction: column; min-height: 0;
  overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
}



.rs-analytics-panel.is-active[data-rs-panel="matrix"],
.rs-analytics-panel.is-leaving[data-rs-panel="matrix"] {
  height: auto;
}
.rs-analytics-panel[data-rs-panel="mix"] > .rs-period-switch,
.rs-analytics-panel[data-rs-panel="mix"] > .rs-mix-tools,
.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section="chart"] {
  flex: 0 0 auto;
}
.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section="detail"] {
  flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
}
.rs-analytics-panel[data-rs-panel="mix"] [data-rs-section="detail"]
  > .rs-section-body {
  flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
}



#rs-analytics-mix, #rs-analytics-months-list {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}



#rs-analytics-mix {
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px),
                                      transparent 100%);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 26px),
                              transparent 100%);
}



#rs-analytics-mix.at-end { -webkit-mask-image: none; mask-image: none; }






#rs-analytics-mix.is-one-week > .rs-mix-week-block:not(.is-picked),
#rs-analytics-mix.is-one-week > .rs-mix-month,
#rs-analytics-months-list.is-one-week > .rs-period-row:not(.is-picked),
#rs-analytics-months-list.is-one-week > .rs-mix-month { display: none; }




















.rs-analytics-panel { display: none; }
.rs-analytics-panel.is-active { display: block; }









.rs-analytics-tabs {
  padding: 0; margin: 18px 0 0; gap: 4px; align-items: stretch;
  





  position: sticky; top: 92px; z-index: 12;
  









  background: var(--page);
}















.rs-analytics-tabs {
  overflow-x: visible;
  -webkit-mask-image: none;
  mask-image: none;
}


















.rs-analytics-tabs .rs-as-of {
  flex: 0 1 auto; min-width: 0; margin: 0 6px 0 auto; padding-left: 12px;
  position: relative; top: -2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: var(--muted); font-size: var(--fs-eyebrow);
}








.rs-analytics-tabs .tab {
  flex: 0 0 auto; min-width: 0; padding: 6px 5px 5px; text-align: center;
  






  




  font-size: 12px; font-weight: 600;
}



.rs-analytics-tabs .tab.active { font-weight: 700; }
.rs-tab-groupbtns .tab.active { font-weight: 600; }

.rs-tab-divider { display: none; }


.rs-tab-group {
  flex: 3 1 0; min-width: 0; display: flex; flex-direction: column;
}












.rs-tab-group {
  flex: 3 1 0; min-width: 0; display: flex;
  background: var(--group-nested);
  border: 1px solid var(--line); border-radius: 10px;
  padding: 2px; margin-left: 10px;
}
.rs-tab-groupbtns { display: flex; gap: 4px; min-width: 0; flex: 1 1 0; }









.rs-tab-groupbtns .tab {
  flex: 1 1 0; padding: 5px 2px 4px; background: none; border-radius: 8px;
}



.rs-tab-groupbtns .tab.active {
  background: var(--surface); border-bottom-color: transparent;
  box-shadow: var(--raise-edge);
}


.rs-analytics-tabs { align-items: center; border-bottom: 0; }







.rs-analytics-tabs > .tab { flex: 0 0 auto; }




















.rs-insight-tabs {
  display: flex; flex-wrap: wrap; gap: 4px; min-width: 0;
  margin: 2px 0 10px; padding: 2px;
  background: var(--group-nested);
  border: 1px solid var(--line); border-radius: 10px;
}
.rs-insight-tabs .tab {
  flex: 0 0 auto; min-width: 0; padding: 6px 10px 5px;
  background: none; border-bottom-color: transparent; border-radius: 8px;
  font-size: 12px; font-weight: 600; color: var(--muted);
}
.rs-insight-tabs .tab.active {
  background: var(--surface); border-bottom-color: transparent;
  box-shadow: var(--raise-edge); color: var(--ink); font-weight: 700;
}


.rs-insight-panel > .rs-change:first-child { padding-top: 0; }













.rs-analytics-tabs .info-button {
  flex: 0 0 auto; align-self: center; top: -2px;
}


.rs-analytics-tabs > .tab { background: none; }


.rs-as-of {
  margin: 14px 0 -6px; font-size: var(--fs-eyebrow); color: var(--muted);
  opacity: 0.85; letter-spacing: 0.01em; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis;
}
.rs-as-of[hidden] { display: none; }









.rs-an-filters { padding: 0; margin-top: 12px; }
.rs-filters-head {
  display: flex; align-items: baseline; gap: 8px; cursor: pointer;
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.01em;
  text-transform: none; color: var(--muted); list-style: none;
}
.rs-filters-head::-webkit-details-marker { display: none; }
.rs-filters-head::before { content: "\25B8"; margin-right: 2px; }
.rs-an-filters[open] .rs-filters-head::before { content: "\25BE"; }

.rs-filters-summary {
  text-transform: none; letter-spacing: 0.01em; font-weight: 600;
  color: var(--muted); opacity: 0.9;
}


.rs-group-label {
  margin: 7px 0 1px; font-size: var(--fs-eyebrow); font-weight: 700;
  letter-spacing: 0.01em; text-transform: none; color: var(--muted);
  opacity: 0.85;
}
.rs-group-label:first-of-type { margin-top: 5px; }
.rs-filter-row {
  display: flex; align-items: center; gap: 4px; padding: 5px 0 0;
}
.rs-chip {
  background: var(--group-nested); border: 1px solid transparent;
  color: var(--muted); border-radius: 999px; padding: 2px 9px;
  font: inherit; font-size: var(--fs-eyebrow); font-weight: 700;
  cursor: pointer; min-height: 26px;
}
.rs-chip.is-active {
  background: var(--btn-secondary-bg, var(--surface-2));
  border-color: var(--line); color: var(--ink);
}













.rs-chip-switch { margin-left: 10px; }
.rs-chip-switch[hidden] { display: none; }

@media (min-width: 700px) {
  .rs-analytics-sheet { max-height: none; overflow-x: clip; }
  .rs-analytics-panel.is-active[data-rs-panel="mix"] {
    max-height: 60vh; max-height: 60dvh; overflow-y: auto;
  }
}




.rs-grid-metric { padding: 0 0 5px; }
.rs-analytics-matrix { display: block; }
.rs-matrix-row {
  display: grid; grid-template-columns: 68px repeat(7, minmax(0, 1fr));
  column-gap: 2px; align-items: stretch; margin-bottom: 2px;
}
.rs-matrix-label {
  font-size: 10px; font-weight: 700; color: var(--muted);
  align-self: center; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap;
}
.rs-matrix-cell {
  font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums;
  text-align: center; padding: 3px 0; border-radius: 4px;
  background: var(--group-nested);
}





.rs-analytics-matrix .rs-matrix-row:not(.is-head) .rs-matrix-cell {
  padding-block: calc(3px + var(--rs-grid-fill, 0px));
}
.rs-matrix-row.is-head .rs-matrix-cell {
  background: none; color: var(--muted); font-size: 10px;
  letter-spacing: 0.04em; padding: 0 0 2px;
}




.rs-matrix-label.is-corner-note {
  font-weight: 500; font-style: italic; letter-spacing: 0.04em;
  align-self: end; padding-bottom: 2px;
}


.rs-matrix-cell.is-thin { opacity: 0.68; background: var(--group-nested); }






.rs-matrix-cell.is-observed {
  background: none; color: var(--muted); font-weight: 500; font-style: italic;
}



.rs-matrix-cell.is-empty { color: var(--muted); opacity: 0.8; background: none; }



























.rs-mix-row {
  display: grid; grid-template-columns: 86px minmax(0, 1fr) 56px 36px;
  align-items: center; column-gap: 7px; padding: 7px 0;
  cursor: pointer; list-style: none;
}
.rs-mix-row::-webkit-details-marker { display: none; }
.rs-mix-row.is-head { cursor: default; padding: 2px 0 4px; }
.rs-mix-week-block { border-bottom: 1px solid var(--line); }
.rs-mix-week-block:last-child { border-bottom: 0; }
.rs-mix-week-block[open] > .rs-mix-row { background: var(--group-nested); }





.rs-mix-days { padding: 1px 0 6px 6px; }
.rs-mix-strip {
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
  column-gap: 2px; row-gap: 0;
}


.rs-mix-strip-day {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.01em;
  color: var(--muted); text-align: center;
}
.rs-mix-strip-amount {
  





  font-size: var(--fs-eyebrow); font-weight: 700; text-align: center;
  font-variant-numeric: tabular-nums; padding-bottom: 2px;
}


.rs-mix-strip-amount.is-empty { color: var(--muted); opacity: 0.8; font-weight: 600; }







.rs-mix-split { margin: 4px 0 0; padding-top: 5px; border-top: 1px solid var(--line); }







.rs-period-row .rs-mix-split { padding-left: 6px; }






.rs-mix-split-row {
  display: grid; grid-template-columns: 3.6rem minmax(0, 1fr);
  align-items: baseline; gap: 10px; padding: 1px 0;
}
.rs-mix-split-name {
  display: flex; align-items: center; gap: 5px; min-width: 0;
  font-size: var(--fs-eyebrow); font-weight: 700; color: var(--muted);
}






.rs-mix-parts {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: baseline; gap: 2px 10px; min-width: 0;
}










.rs-mix-part {
  display: flex; align-items: baseline; gap: 4px;
  justify-content: space-between; min-width: 0;
}
.rs-mix-part > i {
  font-style: normal; font-size: var(--fs-eyebrow); color: var(--muted);
  opacity: 0.85;
}



.rs-mix-part.is-na > b { color: var(--muted); font-weight: 600; }
.rs-mix-part > b {
  font-size: var(--fs-eyebrow); font-weight: 700; color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.rs-mix-lyft {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 10px; margin: 6px 0 2px; padding-top: 6px;
  border-top: 1px solid var(--line);
  font-size: var(--fs-eyebrow); color: var(--muted);
}
.rs-mix-lyft strong {
  color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums;
}





.rs-hist {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  



  









  align-items: end; gap: 3px; margin: 2px 0 4px;
  






  








  height: clamp(104px, calc(100dvh - 700px), 300px);
}
.rs-hist-col {
  display: flex; flex-direction: column; align-items: stretch; gap: 3px;
  background: none; border: 0; padding: 0; cursor: pointer; height: 100%;
  justify-content: flex-end; min-width: 0; font: inherit;
}






.rs-hist-stack {
  display: flex; flex-direction: column; justify-content: flex-end;
  height: 100%; border-radius: 3px; overflow: hidden;
  background: var(--group-nested);
}
.rs-hist-x { display: block; }











.rs-hist-stack > i { display: block; width: 100%; }
.rs-hist-stack > i:first-child { margin-top: auto; }



.rs-hist-x {
  font-size: 9px; font-weight: 700; color: var(--muted); text-align: center;
  white-space: nowrap; overflow: hidden; height: 12px; line-height: 12px;
}

.rs-hist-col { opacity: 0.62; }
.rs-hist-col.is-on { opacity: 1; }
.rs-hist-col.is-on .rs-hist-x { color: var(--ink); }
.rs-hist-detail {
  margin: 0 0 6px; font-size: var(--fs-eyebrow); color: var(--muted);
  line-height: 1.7;
}
.rs-hist-detail b { color: var(--ink); font-weight: 700; }
.rs-hist-detail strong {
  





  color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums;
  margin-left: 10px;
}
.rs-hist-detail em {
  font-style: normal; color: var(--ink); font-weight: 700;
  margin-right: 6px;
}





.rs-hist-parts em:last-child { margin-right: 0; }
.rs-mix-tools {
  


  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 10px; padding: 0 0 4px;
}
.rs-mix-tools .rideshare-actions { margin: 0; flex: 0 1 auto; }
.rs-mix-tools-right {
  display: flex; align-items: center; gap: 10px; margin-left: auto;
}



.rs-mix-tools .link-button {
  




  font-size: var(--fs-eyebrow); min-height: 44px; padding: 0 2px;
}
.rs-mix-day {
  display: grid; grid-template-columns: 76px minmax(0, 1fr) 56px;
  align-items: baseline; column-gap: 7px; padding: 3px 0;
  font-size: var(--fs-eyebrow);
}
.rs-mix-day-name { color: var(--ink); font-weight: 700; }
.rs-mix-day-name em { font-style: normal; color: var(--muted); font-weight: 600; }
.rs-mix-day-split { color: var(--muted); display: flex; align-items: center; gap: 3px; }
.rs-mix-day-split .rideshare-key {
  width: 5px; height: 5px; border-radius: 50%; display: inline-block;
  margin-left: 6px; flex: 0 0 auto;
}
.rs-mix-day-split .rideshare-key:first-child { margin-left: 0; }
.rs-mix-day-total {
  text-align: right; font-variant-numeric: tabular-nums; font-weight: 700;
}












.rs-mix-empty { margin: 4px 0; font-size: var(--fs-eyebrow); color: var(--muted); }
.rs-mix-week { font-size: var(--fs-eyebrow); font-weight: 700; white-space: nowrap; }
.rs-mix-n, .rs-mix-rate {
  text-align: right; font-size: var(--fs-eyebrow); font-variant-numeric: tabular-nums;
}

.rs-mix-n { color: var(--ink); font-weight: 700; font-size: var(--fs-eyebrow); }
.rs-mix-rate { color: var(--muted); }









.rs-mix-bar {
  display: flex; height: 8px; border-radius: var(--radius-pill);
  overflow: hidden; background: var(--bar-track);
}
.rs-mix-bar > i { display: block; height: 100%; }


.rs-mix-bar > i.seg-boost, .rideshare-key.seg-boost {
  background: color-mix(in srgb, var(--accent) 55%, var(--group-nested));
}



.rs-mix-bar > i.seg-tip, .rideshare-key.seg-tip {
  background: color-mix(in srgb, var(--accent) 35%, var(--group-nested));
}


.rs-mix-key {
  display: flex; align-items: center; gap: 2px; min-width: 0;
  overflow: hidden; white-space: nowrap;
}
.rs-mix-key .rideshare-key {
  width: 5px; height: 5px; border-radius: 50%; display: inline-block;
  margin: 0 2px 0 6px; flex: 0 0 auto;
}
.rs-mix-key .rideshare-key:first-child { margin-left: 0; }
.rs-mix-row.is-head > span {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.01em;
  text-transform: none; color: var(--muted); text-align: left;
}
.rs-mix-row.is-head .rs-mix-n, .rs-mix-row.is-head .rs-mix-rate {
  text-align: right;
}

.rs-analytics-group {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm), var(--raise-edge);
  padding: 4px 10px; margin-bottom: 8px;
}
.rs-analytics-group:last-of-type { margin-bottom: 0; }





.rs-analytics-sheet > .rs-analytics-panel.is-active { margin-bottom: 0; }
@media (max-width: 600px) {
  



  main:has(#view-rideshare:not([hidden])) {
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  }
}
.rs-analytics-head:first-of-type { margin-top: 0; }
.rs-analytics-actions { display: flex; align-items: center; gap: var(--space-2); }


#rs-analytics-tip {
  padding-inline: 16px;
  





  bottom: 8px;
  max-height: calc(100dvh - 16px);
  overflow-y: auto; max-width: 300px; z-index: 60; }
#rs-analytics-tip .info-tip-body {
  margin: 6px 0 0; font-size: var(--fs-eyebrow); color: var(--muted);
  line-height: 1.5;
}




#rs-analytics-tip .info-tip-sec { margin: 0 0 7px; }
#rs-analytics-tip .info-tip-sec:last-child { margin-bottom: 0; }
#rs-analytics-tip .info-tip-sec b {
  color: var(--ink); font-weight: 700;
}



.rs-analytics-scope {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--muted); margin-left: 6px;
  vertical-align: baseline;
}




.rideshare-pace {
  margin: 2px 0 0; font-size: var(--fs-eyebrow); color: var(--muted);
  letter-spacing: 0.01em;
  


  white-space: nowrap; overflow: hidden;
}
.rideshare-pace > b { font-weight: 700; color: var(--muted); }
.rideshare-pace .rideshare-pace-sep { opacity: 0.5; }
.rideshare-pace .rideshare-pace-day { color: var(--muted); font-weight: 600; }
.rideshare-pace .rideshare-pace-amount {
  color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums;
}














.rideshare-pace .rideshare-pace-day.is-past,
.rideshare-pace .rideshare-pace-amount.is-past,
.rideshare-pace-days .rideshare-pace-day.is-past,
.rideshare-pace-days .rideshare-pace-amount.is-past {
  



  color: var(--accent-line);
  opacity: 1;
}
.rideshare-pace.is-short { color: var(--warn-fg, var(--ink)); }



.rideshare-pace-days {
  display: grid; grid-template-columns: repeat(var(--pace-cols, 3), minmax(0, 1fr));
  column-gap: 4px; margin: 2px 0 0;
}
.rideshare-pace-days[hidden] { display: none; }
.rideshare-pace-day {
  font-size: var(--fs-eyebrow); font-weight: 700; color: var(--muted);
  text-align: center; opacity: 0.85;
}
.rideshare-pace-amount {
  font-size: var(--fs-eyebrow); font-weight: 700; color: var(--ink);
  text-align: center; font-variant-numeric: tabular-nums;
}
.rideshare-pace[hidden] { display: none; }
.rs-analytics-note {
  font-size: var(--fs-eyebrow); color: var(--muted); margin: 0 0 2px;
  letter-spacing: 0.02em;
}
.rs-analytics-table { display: block; }
.rs-analytics-row {
  



  






  display: grid;
  
  








  grid-template-columns: minmax(0, 1fr) 5.2ch 7ch 38px 34px; 
  align-items: baseline; column-gap: 6px;
  padding: 4px 0; border-bottom: 1px solid var(--line);
}
.rs-analytics-row:last-child { border-bottom: 0; }





@media (max-width: 359px) {
  .rs-analytics-row { grid-template-columns: minmax(0, 1fr) 5.2ch 7ch 38px; }
  .rs-analytics-rides { display: none; }
  


  


  .rs-mix-row.is-head > span.rs-mix-key { font-size: 0; }
  .rs-mix-key .rideshare-key { margin-right: 2px; }
  
  .rs-filters-summary { font-size: 10px; }
}


.rs-analytics-row.is-head {
  





  padding: 0 var(--space-2) 2px; border-bottom: 0;
}



.rs-analytics-row.is-head > span {
  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: 0.01em;
  text-transform: none; color: var(--muted);
}

.rs-analytics-label > i { font-style: normal; display: none; }
.rs-analytics-label > b { font-weight: inherit; }
@media (max-width: 359px) {
  .rs-analytics-label > b { display: none; }
  .rs-analytics-label > i { display: inline; }
}
.rs-analytics-label {
  font-size: var(--fs-figure); font-weight: 700;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}


.rs-analytics-rate {
  font-size: var(--fs-figure); font-weight: 800; text-align: right;
  font-variant-numeric: tabular-nums; white-space: nowrap;
}


.rs-analytics-rate > i {
  font-style: normal; font-size: 0.7em; font-weight: 700; color: var(--muted);
}
.rs-analytics-rides {
  text-align: right; color: var(--muted);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}


.rs-analytics-row.is-head .rs-analytics-rides,
.rs-analytics-row.is-head .rs-analytics-avg,
.rs-analytics-row.is-head .rs-analytics-n { font-size: 10px; }
.rs-analytics-avg, .rs-analytics-n {
  text-align: right; color: var(--muted);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}






.rs-analytics-label,
.rs-analytics-rate,
.rs-analytics-avg,
.rs-analytics-n,
.rs-analytics-rides { font-size: 13px; }


.rs-analytics-avg > b {
  
  font-weight: 400; opacity: 0.75; padding: 0 3px;
}









.rs-analytics-row.is-openable { cursor: pointer; }
.rs-analytics-row.is-openable:active { background: var(--group-nested); }
.rs-analytics-row.is-openable:focus-visible {
  outline: 2px solid var(--accent-line); outline-offset: -2px;
}
.rs-analytics-row.is-thin { opacity: 0.78; }
.rs-analytics-row.is-thin .rs-analytics-n { opacity: 1; }
.rs-analytics-row.is-thin .rs-analytics-rate { font-weight: 600; }
.rs-analytics-row.is-best .rs-analytics-rate { color: var(--accent-line); }
.rs-analytics-empty, .rs-analytics-foot {
  font-size: var(--fs-eyebrow); color: var(--muted); margin: 12px 0 0;
  line-height: 1.5;
}

































.slide-panel {
  





  transition: height 360ms cubic-bezier(0.4, 0, 0.2, 1),
              padding-block 360ms cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
  


  contain: layout paint;
}



.slide-panel.is-animating { will-change: height; }
.slide-panel.is-collapsed {
  

  padding-block: 0; margin-block: 0; border-block-width: 0;
}


.slide-panel > * { min-height: 0; }
@media (prefers-reduced-motion: reduce) {
  .slide-panel { transition: none; }
}























.rs-cell-panel {
  margin: 0;
  padding: 0 0 12px;
}





.rs-cell-inner {
  


  padding: 13px calc(var(--card-pad, 14px) + 1px);
  border-radius: var(--radius-card, 12px);
  background: var(--surface-raised, var(--surface));
  box-shadow: inset 0 0 0 1px var(--line);
}
.rs-cell-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 10px; margin-bottom: 6px;
}



.rs-cell-heading { min-width: 0; }



.rs-cell-heading h3 {
  margin: 0; font-size: var(--fs-card-title, 17px); font-weight: 600;
  color: var(--ink); line-height: 1.2;
}
.rs-cell-when {
  display: block; margin-top: 2px;
  font-size: var(--fs-eyebrow); color: var(--muted);
}

.rs-cell-head .icon-button { flex: 0 0 auto; }
.rs-cell-lead {
  margin: 0 0 10px; color: var(--muted);
  font-size: var(--fs-eyebrow); line-height: 1.4;
}

.rs-cell-lead:empty { display: none; }














#rs-cell-body {
  max-height: 44vh; overflow-y: auto;
  overscroll-behavior: contain;
}



















.rs-cell-inner { display: block; }










.rs-cell-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 6ch;
  align-items: baseline; gap: 0 12px;
  padding: 10px 0; border-bottom: 1px solid var(--line);
}



@media (max-width: 340px) {
  .rs-cell-row { column-gap: 6px; }
}
.rs-cell-row:last-child { border-bottom: 0; }




.rs-cell-day {
  grid-column: 1; grid-row: 1;
  min-width: 0; font-size: var(--fs-cell); color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rs-cell-value {
  grid-column: 3; grid-row: 1;
  font-size: var(--fs-cell); font-weight: 600; color: var(--ink);
  font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap;
}
.rs-cell-side {
  grid-column: 2; grid-row: 1;
  font-size: var(--fs-eyebrow); color: var(--muted);
  font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap;
}



.rs-cell-row.is-best .rs-cell-value { color: var(--accent-line); }
.rs-cell-row.is-best .rs-cell-day { font-weight: 600; }





.rs-matrix-cell.is-openable { cursor: pointer; }
.rs-matrix-cell.is-openable:focus-visible {
  outline: 2px solid var(--accent-line); outline-offset: -2px;
}









.rs-matrix-cell.is-open {
  outline: 2px solid var(--accent-line); outline-offset: -2px;
}














#rs-day-tip {
  




  max-width: min(330px, calc(100vw - 32px));
  min-width: min(250px, calc(100vw - 32px));
  z-index: 61; padding-inline: 16px;
  

  overflow-y: auto;
}




#rs-day-tip .info-tip-head { margin-bottom: 6px; }
.rs-day-block + .rs-day-block {
  margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--line);
}







.rs-day-platform {
  margin: 0 0 3px; font-size: var(--fs-figure); font-weight: 700;
  letter-spacing: 0.01em; text-transform: none; color: var(--ink);
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 10px;
}
.rs-day-platform > span {
  display: flex; align-items: center; gap: 6px;
  color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 700;
}
.rs-day-platform > strong { font-variant-numeric: tabular-nums; }
.rs-day-block + .rs-day-block { margin-top: 10px; padding-top: 8px; }
.rs-day-platform .rideshare-key {
  width: 6px; height: 6px; border-radius: 50%; display: inline-block;
}
.rs-day-line {
  display: flex; justify-content: space-between; gap: 10px;
  font-size: var(--fs-figure); padding: 1px 0; color: var(--muted);
}
.rs-day-line strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.rs-day-line.is-total {
  border-top: 1px solid var(--line); margin-top: 4px; padding-top: 3px;
  color: var(--ink); font-weight: 700;
}
.rs-day-sub {
  margin: 8px 0 2px; font-size: var(--fs-eyebrow); font-weight: 700;
  letter-spacing: 0.01em; text-transform: none; color: var(--muted);
}





.rs-day-hours {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 10px;
}
.rs-day-hours.is-sessions { grid-template-columns: minmax(0, 1fr); }



.rs-day-hours.is-sessions .rs-day-hour {
  gap: 10px; justify-content: flex-start;
}
.rs-day-hours.is-sessions .rs-day-hour > span { flex: 1 1 auto; }
.rs-day-hours.is-sessions .rs-day-hour > em {
  font-style: normal; color: var(--muted); opacity: 0.85;
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.rs-day-hours.is-sessions .rs-day-hour > strong {
  min-width: 52px; text-align: right;
}
.rs-day-hour > span, .rs-day-hour > strong { white-space: nowrap; }
.rs-day-line > span { min-width: 0; }
.rs-day-line > strong { white-space: nowrap; }
.rs-day-hour {
  display: flex; justify-content: space-between; gap: 8px;
  font-size: var(--fs-eyebrow); color: var(--muted); padding: 0 0 1px;
}
.rs-day-hour strong { color: var(--ink); font-variant-numeric: tabular-nums; }
.rs-day-note {
  margin: 5px 0 0; font-size: var(--fs-eyebrow); line-height: 1.4;
  color: var(--muted); opacity: 0.85;
}








.info-tip .rs-day-note { width: 0; min-width: 100%; }








button.rs-mix-strip-amount {
  





  background: none; border: 0; padding: 0; min-height: 36px; font: inherit;
  





  font-size: var(--fs-eyebrow); font-weight: 700; color: var(--ink);
  font-variant-numeric: tabular-nums; cursor: pointer;
  text-decoration: underline; text-decoration-color: var(--line);
  text-underline-offset: 2px;
}
button.rs-mix-strip-amount:hover { text-decoration-color: var(--muted); }






.rs-mileage {
  display: grid; width: 100%;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px var(--space-2); align-items: baseline;
  margin: 0 0 var(--space-2); padding: var(--space-2) var(--space-2);
  border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--group-nested); color: var(--ink);
  text-align: left; cursor: pointer;
}
.rs-mileage:hover, .rs-mileage:focus-visible { border-color: var(--accent); }
.rs-mileage-head {
  color: var(--muted); font-size: var(--fs-eyebrow); font-weight: 600;
}



.rs-mileage-head { grid-column: 1; grid-row: 1; }
.rs-mileage-parts { grid-column: 1; grid-row: 2; }
.rs-mileage-total {
  grid-column: 2; grid-row: 1 / span 2;
  align-self: center; justify-self: end;
  font-size: var(--fs-figure); font-weight: 700; white-space: nowrap;
}



.rs-mileage-total em {
  margin-left: 4px; color: var(--muted);
  font-size: var(--fs-eyebrow); font-style: normal; font-weight: 600;
}
.rs-mileage-parts { color: var(--muted); font-size: var(--fs-eyebrow); }













.rs-tab-group { flex: 4 1 0; }
.rs-tab-groupbtns .tab { flex: 1 1 auto; padding-left: 4px; padding-right: 4px; }



@media (max-width: 389px) {
  

  .rs-analytics-tabs .tab { font-size: 12px; }
  .rs-tab-groupbtns { gap: 2px; }
  .rs-tab-group { margin-left: 6px; }
  




  .rs-insight-tabs { gap: 3px; }
  .rs-insight-tabs .tab { padding-left: 7px; padding-right: 7px; }
}






.rideshare-pace-drawer[hidden] { display: none; }









.rideshare-pace-drawer > summary.rideshare-pace {
  list-style: none; cursor: pointer; margin: 0;
  





  display: flex; align-items: center; gap: 14px;
  







  padding-bottom: 7px;
}
.rideshare-pace-drawer > summary::-webkit-details-marker { display: none; }















@media (prefers-reduced-motion: reduce) {
  .rideshare-pace-drawer > summary.rideshare-pace::after { transition: none; }
}






.rideshare-pace-drawer .rs-mix-strip-day.is-past,
.rideshare-pace-drawer .rs-mix-strip-amount.is-past { color: var(--accent-line); }









.rideshare-pace-drawer button.rs-mix-strip-amount {
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
}
.rideshare-pace-drawer button.rs-mix-strip-amount:hover,
.rideshare-pace-drawer button.rs-mix-strip-amount:focus-visible {
  text-decoration-color: currentColor;
}




.rideshare-pace-drawer.has-no-days > summary.rideshare-pace {
  cursor: default; pointer-events: none;
}

















.rs-mix-strip-amount,
button.rs-mix-strip-amount {
  display: flex; justify-content: center;
  











  align-items: flex-start; padding-top: 3px; min-height: 26px;
}








.rideshare-pace-drawer > .rs-mix-days { padding-bottom: 0; }






.rs-mix-strip-amount.is-reported { color: var(--muted); font-style: italic; }












.rs-mix-strip-amount.is-pending {
  






  opacity: 0.5;
}








.rs-analytics-panel[data-rs-panel="matrix"] { position: relative; }
#rs-cell-panel.rs-cell-panel {
  

  position: absolute; left: 0; right: 0; z-index: 13;
  height: auto; overflow: hidden;
  
  background: transparent !important;
}









#rs-cell-panel .rs-cell-inner {
  position: relative; z-index: 1;
  box-shadow: inset 0 0 0 1px var(--line);
  transition: transform 360ms cubic-bezier(.45, 0, .2, 1);
  will-change: transform;
}



#rs-cell-panel::before {
  content: ""; position: absolute; inset: 0; background: var(--page);
  opacity: 1; transition: opacity 360ms cubic-bezier(.45, 0, .2, 1);
}




#rs-cell-panel.no-anim, #rs-cell-panel.no-anim::before,
#rs-cell-panel.no-anim .rs-cell-inner { transition: none !important; }







#rs-cell-panel.rs-cell-panel {
  clip-path: inset(0 0 0 0);
  transition: transform 360ms cubic-bezier(.45, 0, .2, 1),
              clip-path 360ms cubic-bezier(.45, 0, .2, 1);
}
#rs-cell-panel.is-down {
  clip-path: inset(var(--clip-top, 50%) 0 var(--clip-bottom, 50%) 0);
}




#rs-cell-panel.rs-cell-panel.is-opening,
#rs-cell-panel.is-opening .rs-cell-inner,
#rs-cell-panel.is-opening::before,
.rs-analytics-panel[data-rs-panel="matrix"].is-opening {
  transition-duration: 560ms;
}
.rs-analytics-panel[data-rs-panel="matrix"] {
  transition: transform 360ms cubic-bezier(.45, 0, .2, 1);
}
.rs-analytics-panel[data-rs-panel="matrix"].has-sheet { z-index: 13; }
.rs-analytics-panel[data-rs-panel="matrix"].no-slide,
.rs-analytics-panel[data-rs-panel="matrix"].no-slide * { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  #rs-cell-panel.rs-cell-panel, #rs-cell-panel .rs-cell-inner,
  #rs-cell-panel::before, .rs-analytics-panel[data-rs-panel="matrix"] { transition: none; }
}




.rideshare-head .rs-uber-refresh {
  flex: 0 0 auto; width: 32px; height: 32px; margin: -6px -8px -6px 0;
  vertical-align: middle;
  display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 0; padding: 0; color: var(--muted); cursor: pointer;
}
.rs-uber-refresh svg {
  width: 15px; height: 15px; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.rs-uber-refresh.is-running svg { animation: rs-refresh-spin 900ms linear infinite; }
.rs-uber-refresh.is-running { color: var(--accent); }
@keyframes rs-refresh-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .rs-uber-refresh.is-running svg { animation-duration: 2400ms; }
}



button.rs-mix-strip-amount.rs-today-cell {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px; text-decoration: none;
}




.rs-today-sofar { text-decoration: none; }








.rs-today-bar {
  display: block; width: 80%; height: 8px; overflow: hidden;
  border-radius: var(--radius-pill);
  background: var(--bar-track);
}
.rs-today-bar > i {
  display: block; height: 100%; width: var(--rs-today-fill, 0%);
  background: var(--accent); border-radius: var(--radius-pill);
}


.rs-today-bar.is-over > i { background: var(--accent); }
.rs-today-of { font-size: var(--fs-eyebrow); font-weight: 600; color: var(--muted); line-height: 1; }



.rs-cell-sort { display: flex; gap: 6px; margin: 0 0 8px; }
.rs-cell-sort .rs-chip { min-height: 28px; padding: 3px 10px; }








.rs-insight-panel.from-right {
  animation: rs-panel-in-right var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
.rs-insight-panel.from-left {
  animation: rs-panel-in-left var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
@media (prefers-reduced-motion: reduce) {
  .rs-insight-panel.from-right, .rs-insight-panel.from-left { animation: none; }
}






#rs-analytics-mix.is-one-week, #rs-analytics-months-list.is-one-week {
  flex: 0 0 auto;
}



#rs-analytics-mix.from-right, #rs-analytics-months-list.from-right {
  animation: rs-panel-in-right var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
#rs-analytics-mix.from-left, #rs-analytics-months-list.from-left {
  animation: rs-panel-in-left var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
@media (prefers-reduced-motion: reduce) {
  #rs-analytics-mix.from-right, #rs-analytics-months-list.from-right,
  #rs-analytics-mix.from-left, #rs-analytics-months-list.from-left {
    animation: none;
  }
}











.rs-chip-row.is-hidden-controls {
  position: absolute; top: 0; left: 0;
  width: 1px; height: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap; pointer-events: none;
}
.rs-view-pick { display: inline-flex; align-items: center; flex: 0 0 auto; }
.rs-view-pick select {
  appearance: none; -webkit-appearance: none;
  background: none; border: 1px solid var(--line); border-radius: 999px;
  color: var(--ink); font: inherit; font-size: var(--fs-cell);
  padding: 4px 22px 4px 12px; min-height: 0; height: 30px; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
                    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: right 11px center, right 7px center;
  background-size: 4px 4px, 4px 4px;
  background-repeat: no-repeat;
}
.rs-view-pick select:focus-visible {
  outline: none; box-shadow: 0 0 0 2px var(--accent-line);
}



.rs-hist-rise-clip { display: block; height: 100%; min-height: 0; overflow: hidden; }
@keyframes rs-bar-rise {
  from { transform: translateY(48px) scaleY(.05); }
  to { transform: translateY(0) scaleY(1); }
}
#view-rideshare.is-entering [data-rs-panel="mix"].is-active .rs-hist-stack,
[data-rs-panel="mix"].is-active.from-left .rs-hist-stack,
[data-rs-panel="mix"].is-active.from-right .rs-hist-stack {
  transform-origin: bottom;
  animation: rs-bar-rise var(--motion-slow, 420ms) cubic-bezier(.4,0,.2,1) both;
}
@media (prefers-reduced-motion: reduce) {
  #view-rideshare .rs-hist-stack { animation: none !important; }
}




.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section].is-maximized {
  flex: 1 1 auto; min-height: 0;
}





.rs-analytics-panel[data-rs-panel="mix"].has-maximized
  > [data-rs-section]:not(.is-maximized) {
  flex: 0 0 auto;
}





.rs-analytics-panel[data-rs-panel="mix"].is-chart-wide
  > [data-rs-section="detail"] {
  flex: 0 0 auto;
}
.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section].is-maximized
  > .rs-section-body {
  flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
}



[data-rs-section="chart"].is-maximized #rs-analytics-weeks-chart {
  display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0;
}
[data-rs-section="chart"].is-maximized .rs-hist-plot {
  flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
}
[data-rs-section="chart"].is-maximized #rs-analytics-weeks-chart .rs-hist {
  




  


  


  height: 100% !important; flex: 1 1 auto; min-height: 0;
}
[data-rs-section="chart"].is-maximized .rs-section-body,
[data-rs-section="chart"].is-maximized #rs-analytics-weeks-chart,
[data-rs-section="chart"].is-maximized .rs-hist-plot {
  display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0;
}



.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section].is-maximized {
  display: flex; flex-direction: column;
}





.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section="detail"] {
  border-top: 1px solid var(--line); margin-top: 6px; padding-top: 6px;
}







#history-pie-scope-row.pie-scope .rs-chip {
  min-height: 28px; padding: 0 12px; font-size: 11px;
}





.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section].is-collapsed {
  flex: 0 0 auto;
}
.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section].is-collapsed
  > .rs-section-body {
  height: 0 !important; min-height: 0; overflow: hidden; flex: 0 0 auto;
}



























#rs-analytics-weeks-chart .rs-hist {
  transition: height var(--motion-slow, 420ms) cubic-bezier(0.4, 0, 0.2, 1);
}
@media (prefers-reduced-motion: reduce) {
  #rs-analytics-weeks-chart .rs-hist { transition: none; }
}

















.rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section="detail"] {
  position: relative; background: var(--surface);
  transition: margin-top var(--motion-slow, 420ms)
              cubic-bezier(0.4, 0, 0.2, 1),
              height var(--motion-slow, 420ms)
              cubic-bezier(0.4, 0, 0.2, 1);
}
.rs-analytics-panel[data-rs-panel="mix"].is-detail-wide
  > [data-rs-section="detail"] {
  margin-top: calc(-1 * var(--rs-detail-lift, 0px));
  height: calc(var(--rs-detail-base, 0px) + var(--rs-detail-lift, 0px));
  flex: 0 0 auto; z-index: 22;
}
@media (prefers-reduced-motion: reduce) {
  .rs-analytics-panel[data-rs-panel="mix"] > [data-rs-section="detail"] {
    transition: none;
  }
}



.rs-analytics-panel[data-rs-panel="mix"] > .rs-overlay-placeholder {
  flex: 0 0 auto;
}
.rs-analytics-panel[data-rs-panel="mix"] > .rs-section.is-rs-overlay {
  position: fixed; z-index: 30; margin: 0;
  top: var(--rs-overlay-top, 0px); left: var(--rs-overlay-left, 0px);
  width: var(--rs-overlay-width, 100%); height: var(--rs-overlay-height, auto);
  padding: var(--rs-overlay-padding, 10px); border: var(--rs-overlay-border, 1px) solid var(--line);
  box-sizing: border-box; display: flex; flex-direction: column;
  background: var(--surface); border-radius: 8px; overflow: hidden;
  transition: none;
}
.rs-section.is-rs-overlay > .rs-section-body,
.rs-section.is-chart-overlay #rs-analytics-weeks-chart,
.rs-section.is-chart-overlay .rs-hist-plot {
  flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column;
}
.rs-section.is-chart-overlay .rs-hist {
  flex: 1 1 auto; min-height: 0; height: auto !important;
}
.rs-section.is-chart-overlay #rs-analytics-weeks-chart .rs-hist {
  transition: none;
}
.rs-section.is-detail-overlay > .rs-section-body {
  overflow-y: auto; overscroll-behavior: contain; display: block;
}
.rs-analytics-panel[data-rs-panel="mix"] > .rs-section.is-detail-overlay {
  z-index: 31;
}
.rs-section.is-detail-overlay #rs-analytics-mix,
.rs-section.is-detail-overlay #rs-analytics-months-list {
  height: auto; max-height: none; overflow: visible;
}
.rs-hist-tick.rs-axis-expanded { display: none; }
.is-chart-overlay .rs-hist-tick.rs-axis-expanded { display: block; }
.is-chart-overlay .rs-hist-tick.rs-axis-compact { display: none; }



.rs-analytics-sheet > .rs-analytics-panel.is-leaving {
  position: absolute;
}
.rs-analytics-sheet.is-preparing #rs-analytics-weeks-chart .rs-hist {
  transition: none;
}
.rs-analytics-panel.is-leaving[data-rs-panel="mix"] {
  display: flex; flex-direction: column;
}



.rs-analytics-stage { position: relative; }
.rs-analytics-toolbar { display: flow-root; }
.rs-analytics-sheet > .rs-analytics-panel { margin-top: 0; }
.rs-analytics-panel {
  opacity: 1;
  transition: opacity 180ms var(--ease);
}
.rs-analytics-panel.is-filter-updating { opacity: .38; }
.rs-filter-line > #rs-bucket-row { order: 0; }
.rs-analytics-stage.is-sliding { overflow: hidden; }
.rs-analytics-stage.is-sliding .rs-analytics-sheet { overflow: visible; }
.rs-analytics-toolbar.from-right { animation: rs-panel-in-right var(--motion-slow, 420ms) cubic-bezier(.4,0,.2,1) both; }
.rs-analytics-toolbar.from-left { animation: rs-panel-in-left var(--motion-slow, 420ms) cubic-bezier(.4,0,.2,1) both; }
.rs-toolbar-copy.to-left { animation: rs-panel-out-left var(--motion-slow, 420ms) cubic-bezier(.4,0,.2,1) both; }
.rs-toolbar-copy.to-right { animation: rs-panel-out-right var(--motion-slow, 420ms) cubic-bezier(.4,0,.2,1) both; }
@media (prefers-reduced-motion: reduce) {
  .rs-analytics-toolbar, .rs-toolbar-copy { animation: none !important; }
  .rs-analytics-panel { transition: none; }
  .rs-analytics-panel.is-filter-updating { opacity: 1; }
}


.rs-analytics-toolbar .rs-filter-line { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 10px; }
.rs-analytics-toolbar .rs-filter-line > #rs-service-row { border: 0; margin: 0; padding: 0; }
.rs-analytics-toolbar #rs-show #rs-stat-row { display: flex; flex-wrap: nowrap; width: 100%; justify-content: flex-start; gap: 8px; border: 0; padding: 0; margin: 0; }
.rs-analytics-toolbar #rs-stat-row > .rs-measure-pick { flex: 0 1 auto; min-width: 0; margin: 0; }
.rs-analytics-toolbar #rs-stat-row > .rs-measure-pick > button { max-width: 100%; }
.rs-analytics-toolbar #rs-measure-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-analytics-toolbar #rs-stat-pick { flex: 0 0 auto; }
.rs-analytics-toolbar #rs-show #rs-stat-row [data-rs-hide-empty] { flex: 0 0 auto; margin-left: 0; }
.rs-analytics-toolbar #rs-stat-pick[hidden], .rs-analytics-toolbar #rs-service-row[hidden], .rs-analytics-toolbar #rs-stat-row[hidden] { display: none; }
@media (max-width: 380px) {
  .rs-analytics-toolbar .rs-filter-line { gap: 4px; }
  .rs-analytics-toolbar .rs-filter-line .rs-chip { padding-left: 6px; padding-right: 6px; font-size: 11px; }
  .rs-analytics-toolbar #rs-stat-row > .rs-measure-pick > button { padding-left: 7px; padding-right: 7px; }
}




.rideshare-pace-drawer > .rs-mix-days { padding-left: 0; }
#rideshare-pace-days.is-bar-aligned {
  grid-template-columns: minmax(0, 1fr) var(--rs-summary-value-w, max-content);
  column-gap: 14px;
}
#rideshare-pace-days .rs-pace-day-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  column-gap: 2px;
  row-gap: 0;
}
#rideshare-pace-days .rs-pace-total {
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  justify-items: end;
  min-width: 0;
}
#rideshare-pace-drawer .rideshare-bar-proj {
  flex-basis: var(--rs-summary-value-w, auto);
  text-align: right;
}
#rideshare-pace-days .rs-week-projection-label { text-align: right; }
#rideshare-pace-days .rs-week-projection {
  justify-content: flex-end;
  white-space: nowrap;
}










.rs-analytics-tabs .info-button { margin-left: 10px; }
.rs-tab-group { padding-left: 4px; padding-right: 4px; }













.rs-analytics-row {
  














  column-gap: 10px; padding-left: var(--space-2); padding-right: var(--space-2);
}












.rs-analytics-row {
  grid-template-columns: 11.4ch repeat(2, minmax(0, 1fr));
}
@media (max-width: 359px) {
  
  .rs-analytics-row { grid-template-columns: 7.6ch repeat(2, minmax(0, 1fr)); }
}


.rs-analytics-row > .rs-analytics-rate,
.rs-analytics-row > .rs-analytics-n { text-align: right; }



.rs-analytics-avg, .rs-analytics-rides { display: none; }





.rs-show {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin: 10px 0 2px;
}
.rs-show[hidden] { display: none; }
















.rs-show-sep {
  display: flex; gap: 6px; order: -2;
  flex: 0 0 100%; margin: 0 0 2px;
}
.rs-show-sep[hidden] { display: none; }






















#rs-show .rs-inline-group { flex: 0 0 auto; margin: 0; gap: 4px; }






#rs-show .rs-inline-group .rs-chip { padding-left: 7px; padding-right: 7px; }



















#rs-show #rs-bucket-row .rs-chip, #rs-show #rs-stat-row .rs-chip {
  padding-left: 4px; padding-right: 4px;
}
#rs-show #rs-bucket-row, #rs-show #rs-stat-row { gap: 3px; }
#rs-show #rs-stat-row { padding-left: 5px; margin-left: 2px; }











#rs-show #rs-stat-row { flex: 1 1 auto; }
#rs-show #rs-stat-row .rs-chip-switch { margin-left: auto; }









#rs-bucket-row { order: -3; }





#rs-show::after {
  content: ""; flex: 0 0 100%; height: 0; margin: 0; order: 0;
}






#rs-show:not(:has(> [data-rs-measure]))::after { display: none; }
#rs-show [data-rs-measure] { order: 1; }




#rs-time-row, #rs-stat-row {
  border-left: 1px solid var(--line);
  


  padding-left: 7px; margin-left: 3px;
}




.rs-stat-row { order: -1; margin: 0 0 2px; }




.rs-time-row { order: -2; margin: 0 0 2px; }






.rs-analytics-table.m-earnings { --rs-figure: 8.8ch; }
.rs-analytics-table.m-hourly   { --rs-figure: 4.6ch; }
.rs-analytics-table.m-rides    { --rs-figure: 4.6ch; }























.rs-hist-plot { position: relative; margin: 2px 0 4px; }
.rs-hist-plot > .rs-hist { margin: 0; }
.rs-hist-axis {
  position: absolute; inset: 0 0 15px 0;
  pointer-events: none;
}
.rs-hist-tick {
  position: absolute; left: 0; right: 0; height: 0;
  border-top: 1px dashed var(--line);
}




.rs-hist-tick > span {
  position: absolute; left: 0; top: 1px;
  padding-right: 4px;
  font-size: 9px; line-height: 1; font-weight: 600; color: var(--muted);
  background: var(--surface);
}





.rs-hist-plot > .rs-hist { padding-left: 46px; }
.rs-hist-plot > .rs-hist + .rs-hist-detail { margin-top: 2px; }







.rs-matrix-row {
  




  grid-template-columns: 68px repeat(7, minmax(0, 1fr)) minmax(34px, 1.15fr);
}
@media (max-width: 359px) {
  

  .rs-matrix-row {
    grid-template-columns: 46px repeat(7, minmax(0, 1fr)) minmax(38px, 1.3fr);
    column-gap: 1px;
  }
  


  .rs-matrix-cell.is-total > b { font-size: 10px; }
  .rs-matrix-cell.is-total > em { font-size: 8px; }
  





  .rs-matrix-cell { font-size: 9px; letter-spacing: -0.01em; }
  .rs-matrix-row.is-head .rs-matrix-cell { font-size: 9px; letter-spacing: 0; }
}


.rs-matrix-cell.is-total {
  background: none; font-weight: 700; color: var(--ink);
  border-left: 1px solid var(--line);
}
.rs-matrix-row.is-head .rs-matrix-cell.is-total { font-weight: 700; }
.rs-matrix-row.is-foot { margin-top: 4px; border-top: 1px solid var(--line);
                         padding-top: 4px; }
.rs-matrix-row.is-foot .rs-matrix-cell { background: none; font-weight: 700;
                                         color: var(--ink); }









.rs-matrix-cell.is-total {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; line-height: 1.0; padding: 2px 0;
}
.rs-matrix-cell.is-total > b { font-weight: 700; }
.rs-matrix-cell.is-total > em {
  font-style: normal; font-size: 8px; font-weight: 600; color: var(--muted);
  line-height: 1;
}


.rs-matrix-row.is-head .rs-matrix-cell.is-total { display: block; }














.rs-matrix-cell.is-total.is-best {
  box-shadow: inset 0 0 0 1.5px var(--accent);
  border-radius: 6px;
}
.rs-matrix-cell.is-total.is-best > b { color: var(--ink); }




.rs-show { gap: 4px; margin: 6px 0 2px; }
.rs-show .rs-chip { padding-left: 9px; padding-right: 9px; }
.rs-show-sep { padding-left: 0; }





.rs-hist-line {
  display: grid;
  



  


  grid-template-columns: 9px auto minmax(0, 1fr) auto max-content;
  




  align-items: baseline; column-gap: 3px;
  font-size: var(--fs-eyebrow); color: var(--muted); margin-bottom: 1px;
  line-height: 1.25;
}
.rs-hist-line > b { color: var(--ink); font-weight: 600; }
.rs-hist-line > strong { color: var(--ink); font-weight: 700; }
.rs-hist-line > em { font-style: normal; text-align: right; }

.rs-hist-line > strong { margin-left: 5px; }
.rs-hist-line > .rs-hist-share { min-width: 26px; }





.rs-hist-head {
  grid-template-columns: auto minmax(0, 1fr) max-content;
}
.rs-hist-head > b { grid-column: 1; }
.rs-hist-head > .rs-hist-parts { grid-column: 2; text-align: right; }
.rs-hist-head > strong { grid-column: 3; }













.rs-hist-trend {
  




  












  position: absolute; left: 46px; top: 0;
  width: calc(100% - 46px - 30px); height: calc(100% - 15px); display: block;
  pointer-events: none; z-index: 2;
  



  overflow: hidden;
}






.rs-hist-trend polyline.is-uber { stroke: var(--accent); }
.rs-hist-trend polyline.is-lyft { stroke: var(--accent-soft, #7fd6bd); }
.rs-hist-trend polyline {
  fill: none; stroke: var(--warn, #e0b341); stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
  stroke-linejoin: round; stroke-linecap: round;
}
.rs-hist-axis2 {
  position: absolute; inset: 0 0 15px 0; pointer-events: none; z-index: 1;
}
.rs-hist-tick2 { position: absolute; left: 0; right: 0; height: 0; }


.rs-hist-tick2 > span {
  position: absolute; right: 0; top: 1px;
  padding-left: 4px;
  font-size: 9px; line-height: 1; font-weight: 600;
  color: var(--warn, #e0b341);
}















.rs-hist-axis2 ~ .rs-hist { padding-right: 30px; }










.rs-hist-key {
  display: flex; flex-wrap: wrap; gap: 0 9px; margin: 2px 0 0;
  font-size: 10px; color: var(--muted); line-height: 1.25;
}
.rs-hist-key > span { display: inline-flex; align-items: center; gap: 4px; }






.rs-hist-key > .rs-key-pick {
  display: inline-flex; align-items: center; gap: 4px;
  background: none; border: 0; padding: 4px 2px; margin: -4px 0;
  font: inherit; color: inherit; cursor: pointer;
}
.rs-hist-key > .rs-key-pick.is-off { opacity: 0.45; }
.rs-hist-key > .rs-key-pick[aria-pressed="true"] {
  color: var(--ink); font-weight: 700;
}
.rs-hist-key > .rs-key-pick:focus-visible {
  outline: 2px solid var(--accent-line); outline-offset: 2px; border-radius: 4px;
}
.rs-hist-key i {
  width: 9px; height: 9px; border-radius: 2px; display: inline-block;
  flex: 0 0 auto;
}


.rs-hist-key i.rs-key-line {
  height: 2px; border-radius: 0; background: var(--warn, #e0b341);
}
.rs-hist-key i.rs-key-line.is-uber { background: var(--accent); }
.rs-hist-key i.rs-key-line.is-lyft { background: var(--accent-soft, #7fd6bd); }
.rs-hist-key-line { margin-top: 0; }








.rs-hist-parts {
  min-width: 0; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap;
}
.rs-hist-parts em { font-style: normal; color: var(--ink); font-weight: 600; }
.rs-hist-head { grid-template-columns: minmax(0, 1fr) auto; }
.rs-hist-head > b { font-weight: 700; }





















:root {
  












  --band-fares: var(--pie-3);
  --band-promo: var(--pie-4);
  --band-tips: var(--pie-5);
  --band-boost: var(--pie-1);
  --band-surge: var(--pie-2);
}











.rs-hist-stack > i.seg-uber-fares,
.rs-hist-key i.seg-uber-fares,
.rs-hist-stack > i.seg-all-fares,
.rs-hist-key i.seg-all-fares { background: var(--band-fares); }
.rs-hist-stack > i.seg-uber-promo,
.rs-hist-key i.seg-uber-promo,
.rs-hist-stack > i.seg-all-promo,
.rs-hist-key i.seg-all-promo { background: var(--band-promo); }
.rs-hist-stack > i.seg-uber-tips,
.rs-hist-key i.seg-uber-tips,
.rs-hist-stack > i.seg-all-tips,
.rs-hist-key i.seg-all-tips { background: var(--band-tips); }
.rs-hist-stack > i.seg-uber-boost,
.rs-hist-key i.seg-uber-boost,
.rs-hist-stack > i.seg-all-boost,
.rs-hist-key i.seg-all-boost { background: var(--band-boost); }
.rs-hist-stack > i.seg-uber-surge,
.rs-hist-key i.seg-uber-surge,
.rs-hist-stack > i.seg-all-surge,
.rs-hist-key i.seg-all-surge { background: var(--band-surge); }




.rs-hist-stack > i.seg-lyft-fares,
.rs-hist-key i.seg-lyft-fares {
  background: color-mix(in srgb, var(--band-fares) 45%, white);
  border-top: 1px solid var(--surface);
}
.rs-hist-stack > i.seg-lyft-promo,
.rs-hist-key i.seg-lyft-promo {
  background: color-mix(in srgb, var(--band-promo) 45%, white);
}
.rs-hist-stack > i.seg-lyft-tips,
.rs-hist-key i.seg-lyft-tips {
  background: color-mix(in srgb, var(--band-tips) 45%, white);
}
.rs-hist-stack > i.seg-lyft-boost,
.rs-hist-key i.seg-lyft-boost {
  background: color-mix(in srgb, var(--band-boost) 45%, white);
}
.rs-hist-stack > i.seg-lyft-surge,
.rs-hist-key i.seg-lyft-surge {
  background: color-mix(in srgb, var(--band-surge) 45%, white);
}























.rs-section { margin-bottom: 6px; }
.rs-sec-head {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 2px;
}
.rs-sec-toggle {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: 0; padding: 2px 0; cursor: pointer;
  font: inherit; font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; color: var(--muted);
  

  position: relative;
}
.rs-sec-toggle::after {
  content: ""; position: absolute; left: -8px; right: -8px;
  top: -12px; bottom: -12px;
}








.rs-sec-title {
  display: inline-flex; align-items: center; padding: 2px 0;
  font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; color: var(--muted);
}
.rs-sec-head > .rs-sec-title { flex: 0 0 auto; letter-spacing: .02em; }
.rs-sec-toggle.is-bare { margin-right: 2px; }







.rs-sec-toggle.is-bare::after {
  








  left: -10px; right: -34px; top: -18px; bottom: -18px;
}
.rs-sec-caret {
  width: 0; height: 0; display: inline-block;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor; border-bottom: 0;
  transition: transform var(--motion-fast) var(--ease);
}
.rs-section.is-collapsed .rs-sec-caret,
.rideshare-card.is-collapsed .rs-sec-caret { transform: rotate(-90deg); }






.rs-section > .rs-section-body,
.rideshare-card > .rs-card-body {
  overflow: hidden;
  transition: height 360ms cubic-bezier(0.4, 0, 0.2, 1);
}


.rs-section.is-collapsed > .rs-section-body,
.rideshare-card.is-collapsed > .rs-card-body {
  height: 0; margin-block: 0;
}

@media (prefers-reduced-motion: reduce) {
  .rs-section > .rs-section-body,
  .rideshare-card > .rs-card-body { transition: none; }
}


























.rideshare-card.is-collapsed > .rideshare-report > *:not(summary) {
  display: none;
}
.rideshare-card.is-collapsed { padding-bottom: 8px; }

.rs-sec-max {
  margin-left: auto; background: none; border: 0; padding: 4px 0 4px 6px;
  cursor: pointer; color: var(--muted); line-height: 0;
  position: relative;
}
.rs-sec-max::after {
  content: ""; position: absolute; left: -8px; right: -8px;
  top: -10px; bottom: -10px;
}
.rs-sec-max svg {
  width: 15px; height: 15px; fill: none; stroke: currentColor;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.rs-sec-max[aria-pressed="true"] { color: var(--accent); }





.rs-period-switch {
  





  display: inline-flex; margin: 0 0 6px; border-radius: 999px;
  background: var(--surface-2, rgba(255, 255, 255, .05)); padding: 2px;
}
.rs-period-opt {
  background: none; border: 0; cursor: pointer; font: inherit;
  



  font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: .03em;
  text-transform: uppercase; color: var(--muted);
  padding: 3px 8px; border-radius: 999px;
}
.rs-period-opt.is-active {
  background: var(--surface); color: var(--ink);
  box-shadow: var(--shadow-sm);
}











.rs-sec-link {
  font-size: var(--fs-eyebrow); font-weight: 600; padding: 0;
}





.rs-sec-link + .rs-sec-link { margin-left: 6px; }






.rs-week-mode.rs-period-switch { margin: 0 0 0 7px; flex: 0 0 auto; }



.rs-analytics-panel:not(.is-week-all) #rs-mix-expand-all,
.rs-analytics-panel:not(.is-week-all) #rs-mix-collapse-all { display: none; }


.rs-sec-head > .rs-sec-toggle { flex: 0 0 auto; }
.rs-sec-head > .rs-sec-toggle { letter-spacing: .02em; }






.rs-sec-head > .rs-sec-link:first-of-type { margin-left: 7px; }
.rs-sec-head > .rs-sec-max { margin-left: auto; }





































































@media (max-width: 360px) {
  .budget-income-table th:first-child, .budget-income-table td:first-child {
    width: auto; min-width: 0; max-width: none;
  }
}









.table-shell.budget-income-shell { overflow-x: auto; }











@media (max-width: 600px) {
  .budget-income-table th:nth-child(4),
  .budget-income-table td:nth-child(4) { padding-right: 0; }
}














.bill-pill.is-pending {
  padding-block: 4px;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
}




















#view-bills .section-toggle {
  display: flex;
  width: 100%;
}
#view-bills .section-total {
  margin-left: auto;
  






  order: 2;
}
#view-bills .section-source { order: 1; }






















#budget-debt-table tbody td,
#joint-debt-table tbody td,
#personal-bills-table tbody td {
  padding-top: 6px; padding-bottom: 6px;
}




.heloc-table th, .heloc-table td {
  padding-left: 12px; padding-right: 12px;
}

















.name-cell { position: relative; flex-wrap: nowrap; }
.name-cell > .row-chevron {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  margin-left: 0; pointer-events: none;
}












#earnings-table th, #earnings-table td { display: table-cell; width: auto; }
#earnings-table th:first-child, #earnings-table td:first-child {
  width: 22%; min-width: 0; max-width: none; text-align: left;
}
#earnings-table th.number, #earnings-table td.number {
  text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap;
  padding-left: 4px; padding-right: 4px;
  








  vertical-align: top;
}
#earnings-table th:last-child, #earnings-table td:last-child { padding-right: var(--table-gutter-right); }



















.earn-share {
  display: inline-block; width: var(--earn-share-slot); text-align: right;
  margin-left: 5px;
  font-size: var(--fs-micro); font-weight: 600;
  color: var(--muted); font-variant-numeric: tabular-nums;
  white-space: nowrap;
}



































#view-payday .deposit-row > span:first-child,
#view-payday .surplus-panel .track-balance > span {
  font-size: var(--fs-cell);
}


























#view-payday .surplus-panel .track-balance {
  padding-right: var(--table-gutter-right);
}






#view-payday .deposit-rows {
  padding-right: var(--table-gutter-right);
  









  padding-left: var(--space-3);
}




#view-payday .cash-card > .section-head { padding-right: var(--table-gutter-right); }








































.budget-income-table thead th.number {
  text-align: left;
  






  padding-left: var(--table-gutter-right);
}






#view-payday .section-action-inline {
  margin-left: auto; display: inline-flex; align-items: baseline; gap: 6px;
  white-space: nowrap;
}













.rs-matrix-cell.is-week-best > em {
  font-style: normal; font-size: 8px; font-weight: 600; color: var(--muted);
  line-height: 1; letter-spacing: .04em; text-transform: uppercase;
}





.rs-hist-stack > i.seg-type-0,
.rs-hist-key i.seg-type-0 { background: var(--band-fares); }
.rs-hist-stack > i.seg-type-1,
.rs-hist-key i.seg-type-1 { background: var(--band-promo); }
.rs-hist-stack > i.seg-type-2,
.rs-hist-key i.seg-type-2 { background: var(--band-tips); }
.rs-hist-stack > i.seg-type-3,
.rs-hist-key i.seg-type-3 { background: var(--band-boost); }
.rs-hist-stack > i.seg-type-4,
.rs-hist-key i.seg-type-4 { background: var(--band-surge); }
.rs-hist-stack > i.seg-type-5,
.rs-hist-key i.seg-type-5 { background: var(--muted); }





.rs-change { padding: 8px 0; border-bottom: 1px solid var(--line); }
.rs-change:last-child { border-bottom: 0; }
.rs-change-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
}
.rs-change-name { font-size: var(--fs-cell); font-weight: 600; color: var(--ink); }
.rs-change-move {
  font-size: var(--fs-cell); font-weight: 700; font-variant-numeric: tabular-nums;
}



.rs-change-move.is-up { color: var(--accent-line); }
.rs-change-move.is-down { color: var(--muted); }
.rs-change-spark {
  display: flex; align-items: flex-end; gap: 2px; height: 26px; margin: 5px 0 3px;
}
.rs-change-spark > i {
  flex: 1 1 0; min-width: 0; background: var(--bar-track); border-radius: 1px;
}

.rs-change-spark > i.is-late { background: var(--accent); }
.rs-change-note {
  margin: 0; font-size: var(--fs-eyebrow); line-height: 1.4; color: var(--muted);
}






.rs-change-kicker {
  margin: 12px 0 2px; font-size: var(--fs-eyebrow); font-weight: 700;
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted);
}
.rs-change-kicker:first-child { margin-top: 0; }


.rs-change.is-advice .rs-change-name { font-weight: 700; }


















.rs-day-hours.is-rides {
  grid-template-columns: minmax(0, 1fr);
  max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
  padding-inline: 2px 4px;
}
.rs-day-hours.is-rides .rs-day-hour {
  gap: 10px; justify-content: flex-start; padding-inline: 8px 10px;
}
.rs-day-hours.is-rides .rs-day-hour > span {
  min-width: 64px; font-variant-numeric: tabular-nums;
}


.rs-day-hours.is-rides .rs-day-hour > em {
  flex: 1 1 auto; min-width: 0; font-style: normal; color: var(--muted);
  opacity: 0.85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rs-day-hours.is-rides .rs-day-hour > strong {
  min-width: 56px; text-align: right; color: var(--ink);
}


.rs-day-more {
  display: flex; align-items: baseline; gap: 8px; width: 100%;
  background: none; border: 0; padding: 8px 0 6px; cursor: pointer;
  color: var(--ink); font: inherit; text-align: left;
}
.rs-day-more > span { font-weight: 600; }
.rs-day-more > strong { margin-left: auto; font-variant-numeric: tabular-nums; }
.rs-day-more > em { font-style: normal; color: var(--muted); }
.rs-day-back {
  background: none; border: 0; padding: 0 0 8px; cursor: pointer;
  color: var(--accent-line); font: inherit; font-size: var(--fs-eyebrow);
}
















#rs-day-tip.is-wide, .info-tip.is-wide {
  width: calc(100vw - 52px); max-width: calc(100vw - 52px);
  left: 50% !important; transform: translateX(-50%);
}







@keyframes rs-drill-up {
  from { opacity: 0; transform: translateY(40%); }
  to   { opacity: 1; transform: none; }
}
@keyframes rs-drill-down {
  from { opacity: 0; transform: translateY(-40%); }
  to   { opacity: 1; transform: none; }
}
.rs-drill-in {
  animation: rs-drill-up 560ms cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
.rs-drill-back {
  animation: rs-drill-down 360ms cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
@media (prefers-reduced-motion: reduce) {
  .rs-drill-in, .rs-drill-back { animation: none; }
}


.rs-day-hours.is-rides .rs-day-hour.is-lyft > span::before,
.rs-day-hours.is-rides .rs-day-hour.is-uber > span::before {
  content: ""; display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; margin-right: 6px; vertical-align: 1px;
}
.rs-day-hours.is-rides .rs-day-hour.is-uber > span::before {
  background: var(--seg-uber, var(--accent));
}
.rs-day-hours.is-rides .rs-day-hour.is-lyft > span::before {
  background: var(--seg-lyft, var(--accent-line));
}
.rs-day-more:focus-visible, .rs-day-back:focus-visible {
  outline: 2px solid var(--accent-line); outline-offset: 2px;
}





.rs-mix-week-block.is-from-right {
  animation: rs-panel-in-right var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
.rs-mix-week-block.is-from-left {
  animation: rs-panel-in-left var(--motion-slow, 420ms)
             cubic-bezier(0.4, 0, 0.2, 1) backwards;
}
@media (prefers-reduced-motion: reduce) {
  .rs-mix-week-block.is-from-right,
  .rs-mix-week-block.is-from-left { animation: none; }
}




input:is(:not([type]), [type="text"], [type="number"], [type="email"],
         [type="password"], [type="search"], [type="tel"], [type="url"],
         [type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"]),
textarea, form select, select.floor-select {
  background-color: var(--input-bg) !important;
  color: var(--ink) !important;
}
input:is(:not([type]), [type="text"], [type="number"], [type="email"],
         [type="password"], [type="search"], [type="tel"], [type="url"],
         [type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"]):not(.is-editing):not([aria-invalid="true"]),
textarea:not([aria-invalid="true"]), form select:not([aria-invalid="true"]), select.floor-select:not([aria-invalid="true"]) {
  border-color: var(--input-border) !important;
}


input:is(:not([type]), [type="text"], [type="number"], [type="email"],
         [type="password"], [type="search"], [type="tel"], [type="url"],
         [type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"]),
textarea, form select, select.floor-select {
  border-style: solid !important;
  border-radius: var(--radius-sm) !important;
}
