/* Shared navigation and the household ledger. */
[hidden]{display:none!important}
:root{--muted:#726e65}
button,a,input,select,summary{touch-action:manipulation}
:focus-visible{outline:3px solid #72ab93;outline-offset:3px}
.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}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-size:18px;font-weight:800;line-height:1.35;letter-spacing:-.03em}
.brand img{flex-shrink:0}
.brand small{display:block;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.08em;margin-top:3px}
.sidebar-brand,.nav-section,.sidebar-foot,.top-context{display:none}
header.top{min-height:65px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:24px 0 8px}
.page-heading h1{font-size:28px;line-height:1.3;letter-spacing:-.03em;margin:4px 0 8px}
.page-heading p{margin:0;color:var(--muted);font-size:14px}
.page-heading>button{white-space:nowrap;min-height:44px}
.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--green)}
.entry-card{margin-top:14px}
.entry-card:not([open]){display:none}
.entry-card summary,.budget-fold summary{cursor:pointer;font-weight:700}
.entry-card summary span{font-weight:400;margin-left:10px}
.entry-card[open] summary,.budget-fold[open] summary{margin-bottom:16px}
.ledger-card{padding:22px}
.ledger-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ledger-search{flex:1;min-width:220px}
.ledger-search input{min-height:44px;background:#fafbf9}
#ledger-range{gap:5px}
#ledger-range button{border-radius:9px;font-size:13px;min-height:40px}
.ledger-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.ledger-filters select{min-height:42px}
#ledger-filter-panel>summary{display:none;cursor:pointer;font-size:13px;font-weight:600}
#ledger-filter-summary{font-size:11px;font-weight:400;margin-left:5px}
.ledger-extra{display:flex;align-items:baseline;gap:18px;margin-top:14px;flex-wrap:wrap}
.ledger-extra summary{font-size:13px;cursor:pointer;color:var(--muted)}
.ledger-extra details[open]{width:100%;order:1}
.ledger-extra .f-grid{margin-top:10px}
.check-filter{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}
.check-filter input{accent-color:var(--green);width:16px;height:16px}
#ledger-reset{margin-left:auto;color:var(--muted)}
.month-controls{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.month-controls .f{min-width:128px;max-width:200px;flex:1}
.month-controls>button{align-self:end;min-height:42px}
#ledger-date-controls{margin-top:14px}
.ledger-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;background:#f6f7f3;border:1px solid #e7ebe2;border-radius:12px;padding:16px 18px;margin:20px 0 12px}
.ledger-summary span{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}
.ledger-summary strong{font-size:21px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ledger-summary>div+div{border-left:1px solid var(--line);padding-left:18px}
.ledger-status{font-size:13px;color:var(--muted)}
.ledger-status:empty{display:none}
#ledger-table{font-size:13.5px}
#ledger-table th{padding:10px 8px;background:#fcfcfa}
#ledger-table th button{border:0;background:none;padding:0;color:inherit;font:inherit;min-height:30px}
#ledger-table th[aria-sort]:not([aria-sort=none]){color:var(--green);font-weight:700}
#ledger-table td{padding:14px 8px}
#ledger-table tbody tr:hover{background:#fafbf8}
#ledger-table .ledger-description{min-width:140px;max-width:280px;white-space:normal;overflow-wrap:anywhere}
.ledger-description strong{font-weight:600}
.ledger-description small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.ledger-description .chip{margin-top:5px;font-size:10px}
.ledger-actions{display:flex;justify-content:flex-end;gap:6px}
.ledger-actions button{min-height:34px;padding:4px 10px}
button.danger-link{color:#b3382b;border-color:transparent;background:none}
button.danger-link:hover{background:var(--red-soft);border-color:#f3c7bf}
.ledger-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}
.ledger-pagination>div{display:flex;align-items:center;gap:8px}
.ledger-pagination select{width:62px;padding:6px}
.ledger-pagination button{font-size:13px;min-height:38px}
.ledger-empty{text-align:center;padding:38px 16px;color:var(--muted)}
.ledger-empty strong{display:block;font-size:16px;color:var(--text);margin-bottom:8px}
.ledger-empty button{margin-top:12px}
#ledger-focus{margin-top:14px;padding:10px 14px;border-radius:10px;background:var(--green-soft);font-size:13px}
#r-list[aria-busy=true]{opacity:.55;pointer-events:none}
#delete-dialog{max-width:460px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:18px;padding:24px;color:var(--text);box-shadow:0 20px 70px #0003}
#delete-dialog::backdrop{background:#2b292566}
#delete-dialog h2{margin:0;font-size:20px}
#delete-dialog .form-actions{justify-content:flex-end;margin-top:22px}
#delete-detail{padding:14px;background:var(--bg);border-radius:12px;overflow-wrap:anywhere}
#delete-detail strong{font-size:18px}
#delete-detail p{margin:5px 0}
.danger-button{background:#b3382b;color:white;border-color:#b3382b}
.sheet .form-actions{position:sticky;bottom:-20px;background:#fff;padding:12px 0 4px}
#more-menu{position:fixed;z-index:35;bottom:calc(72px + env(safe-area-inset-bottom));right:12px;width:210px;border:1px solid var(--line);border-radius:16px;background:white;padding:8px;box-shadow:0 8px 30px #0002}
#more-menu button{display:block;width:100%;border:0;text-align:left;padding:12px}
#more-menu button.active{background:var(--green-soft);color:var(--green)}
.row-link{background:none;border:0;padding:0;text-align:left;color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:#c4d9cc;text-underline-offset:4px}
.row-link:hover{color:var(--green)}
@media(min-width:900px){
  main{margin-left:232px;padding:8px 30px 60px;max-width:1390px}
  nav#nav{width:232px;padding:24px 14px 16px;gap:4px;overflow-y:auto;background:#fffefa}
  .sidebar-brand{display:flex;margin:0 8px 25px}
  .nav-section{display:block;font-size:10.5px;letter-spacing:.08em;color:var(--muted);padding:15px 14px 5px}
  nav#nav button{min-height:46px;font-size:14px}
  nav#nav button:hover{background:var(--line-soft)}
  nav#nav button.active{background:var(--green-soft);color:var(--green);box-shadow:inset 3px 0 var(--green)}
  .sidebar-foot{display:flex;margin-top:auto;padding:30px 12px 0;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}
  .family-mark{font-size:12px;font-weight:700;color:var(--green)}
  header.top{margin-left:232px;padding:12px 30px;z-index:20}
  .top-context{display:flex;gap:12px;font-size:12px;color:var(--muted)}
  .top-context b{color:var(--text);font-weight:600}
  .mobile-brand,nav#nav #nav-more,#more-menu{display:none!important}
}
@media(max-width:899px){
  :root{--nav-h:calc(66px + env(safe-area-inset-bottom))}
  nav#nav [data-view=cards],nav#nav [data-view=forecast],nav#nav [data-view=stats],nav#nav [data-view=manage]{display:none}
  nav#nav button{font-size:11px;min-height:58px}
  #asof{display:none}
  .page-heading{padding-top:20px}
  .page-heading h1{font-size:25px}
  .ledger-card{padding:16px}
  .ledger-toolbar{gap:10px}
  .ledger-search{flex-basis:100%}
  .ledger-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(max-width:680px){
  .brand{font-size:16px}.brand small{font-size:10px}
  .page-heading p{font-size:12px}.page-heading>button{padding:8px 12px}
  .ledger-summary{grid-template-columns:repeat(2,1fr);padding:14px;gap:16px 10px}
  .ledger-summary strong{font-size:20px}
  .ledger-summary>div:nth-child(3){border-left:0;padding-left:0}
  .ledger-summary>div:nth-child(4){padding-left:18px}
  #ledger-filter-panel{margin-top:14px;padding:11px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
  #ledger-filter-panel>summary{display:list-item;margin-left:16px}
  .ledger-summary{margin-top:14px}
  #ledger-table thead{display:none}
  #ledger-table,#ledger-table tbody{display:block}
  #ledger-table tr{display:grid;grid-template-columns:1fr auto;gap:3px 12px;border-bottom:1px solid var(--line);padding:14px 0}
  #ledger-table td{display:block;border:0;padding:0;white-space:normal}
  #ledger-table .ledger-description{grid-column:1;grid-row:2;max-width:none;min-width:0}
  #ledger-table .ledger-date{grid-column:1;grid-row:1;font-size:11px;color:var(--muted)}
  #ledger-table .ledger-category{grid-column:1;grid-row:3;font-size:12px;color:var(--muted)}
  #ledger-table .ledger-person{grid-column:2;grid-row:1;text-align:right;font-size:11px;color:var(--muted)}
  #ledger-table .ledger-amount{grid-column:2;grid-row:2;font-size:17px;font-weight:700}
  #ledger-table .ledger-actions-cell{grid-column:1/-1;grid-row:4;margin-top:8px}
  .ledger-actions button{min-height:40px;padding:6px 16px}
  .ledger-pagination>div{width:100%;justify-content:space-between}
  .ledger-pagination>span{width:100%}
  .ledger-extra{gap:12px;font-size:12px}
  .ledger-extra #ledger-reset{font-size:12px}
  #rv-pending li,#rv-done li{flex-wrap:wrap;align-items:center}
  #rv-pending .grow,#rv-done .grow{flex-basis:65%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
