:root{--ink:#211b19;--gold:#b89552;--cream:#f6f1e8;--red:#c7473c;--green:#27835a}*{box-sizing:border-box}body{margin:0;background:#f7f7f5;color:var(--ink);font-family:Tahoma,Arial,sans-serif;display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:#171513;color:white;padding:28px 18px;position:sticky;top:0;height:100vh}.brand{font:700 22px Georgia;color:var(--gold);letter-spacing:2px}.brand small{display:block;font:12px Tahoma;color:#aaa;margin-top:8px}nav{margin-top:35px}nav a{display:block;color:#ddd;text-decoration:none;padding:13px;border-radius:8px;margin:4px 0}nav a:hover{background:#2a2622;color:white}main{padding:28px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}h1{font-size:25px}h2{font-size:18px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.cards article,.panel{background:white;border:1px solid #e8e3dc;border-radius:13px;padding:18px;box-shadow:0 2px 10px #00000008}.cards label{display:block;color:#766f68;margin-bottom:12px}.cards strong{font-size:22px}.cards .warn{border-right:4px solid var(--red)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stats p{background:var(--cream);padding:13px;border-radius:8px;margin:0}.stats b{display:block;font-size:20px;margin-top:8px}table{width:100%;border-collapse:collapse}th,td{text-align:right;padding:12px;border-bottom:1px solid #eee;font-size:14px}th{color:#716a64;background:#faf8f4}td small{display:block;color:#888;margin-top:4px}.tag{background:#eee8df;padding:5px 8px;border-radius:20px;font-size:12px}.tag.danger,.tag.out_of_stock{background:#ffe1de;color:#a9251c}.tag.low{background:#fff0c7}.tag.safe{background:#dff4e8;color:#176b45}button{border:0;background:var(--gold);color:white;padding:10px 16px;border-radius:7px;cursor:pointer}.secondary{background:#59534e}.toolbar{display:flex;gap:8px;margin-bottom:15px;flex-wrap:wrap;align-items:center}details form{display:grid;gap:5px;position:absolute;background:white;padding:12px;border:1px solid #ddd;box-shadow:0 5px 20px #0002;z-index:2}input,select{border:1px solid #d7d2ca;padding:10px;border-radius:7px;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.form-grid label{display:grid;gap:7px}.inventory-summary{grid-template-columns:repeat(5,1fr)}.inventory-summary article{padding:14px}.inventory-summary strong{font-size:20px}.notice{padding:12px 15px;border-radius:8px;margin:12px 0;background:#dff4e8;color:#176b45}.notice.warn{background:#fff0c7;color:#775500}.inventory-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-bottom:15px}.inventory-filters label{display:grid;gap:5px}.inventory-filters .grow{flex:1;min-width:210px}@media(max-width:900px){body{grid-template-columns:1fr}aside{height:auto;position:static}nav{display:flex;overflow:auto;margin-top:15px}nav a{white-space:nowrap}.cards,.grid{grid-template-columns:1fr 1fr}main{padding:16px}.panel{overflow:auto}.inventory-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:550px){.cards,.grid,.form-grid,.inventory-summary{grid-template-columns:1fr}}

/* v1.25.19 mobile ergonomics */
@media(max-width:760px){
  body{display:block;min-height:100vh}
  aside{position:static;height:auto;padding:12px 10px;border-bottom:1px solid #2b2824}
  .brand{font-size:18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.brand small{margin-top:0;font-size:10px}
  nav{display:flex;gap:6px;overflow-x:auto;margin-top:10px;padding-bottom:4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  nav a{flex:0 0 auto;white-space:nowrap;padding:10px 12px;margin:0;background:#221f1c;scroll-snap-align:start}
  main{padding:10px}
  header{margin-bottom:12px;gap:10px;align-items:flex-start}header h1{font-size:20px;margin:6px 0}header span{font-size:12px}
  .panel,.cards article{border-radius:11px;padding:12px}
  button,input,select,textarea{min-height:44px;font-size:16px}
  details form{position:static;width:100%;box-shadow:none}
  .toolbar{align-items:stretch}.toolbar>*{max-width:100%}
  .grid,.cards,.form-grid,.inventory-summary{grid-template-columns:1fr}
}

/* v1.25.21 private finance */
.private-finance-nav{border:1px solid #5e4b28;background:#211d17!important;color:#e1c17c!important}.private-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;border-right:5px solid var(--gold);background:#fff9eb}.private-banner span{color:#766f68;font-size:13px}.button-link{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#fff;text-decoration:none;padding:10px 14px;border-radius:7px;min-height:40px}.button-link.secondary{background:#59534e}.finance-month label{display:flex;gap:8px;align-items:center}.finance-cards{grid-template-columns:repeat(4,1fr)}.finance-cards article{position:relative;overflow:hidden}.finance-cards article small{display:block;color:#80776d;margin-top:8px;line-height:1.5}.finance-cards .finance-hero{background:linear-gradient(145deg,#211b19,#3a312c);color:#fff;border-color:#3a312c}.finance-cards .finance-hero label,.finance-cards .finance-hero small{color:#dbc99f}.private-finance-grid{grid-template-columns:1.3fr .7fr}.span-3{grid-column:1/-1}.finance-help{margin-top:10px;padding:10px;background:#faf6ed;border-radius:8px;color:#6c6259;font-size:13px}.finance-bars{display:grid;gap:12px}.finance-bars div{display:grid;grid-template-columns:1fr auto;gap:6px;position:relative;padding-bottom:9px}.finance-bars i{grid-column:1/-1;height:6px;background:#eee5d3;border-radius:99px;overflow:hidden}.finance-bars i:after{content:'';display:block;width:var(--w);height:100%;background:var(--gold)}.finance-line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.section-head small{color:#7d756e}.table-wrap{overflow:auto}.finance-table td,.finance-table th{vertical-align:top}.legacy-row{background:#fffcf4}.finance-inline-edit{position:static!important;display:grid!important;grid-template-columns:repeat(2,minmax(150px,1fr));gap:7px!important;width:min(650px,80vw);box-shadow:none!important}.finance-inline-edit input,.finance-inline-edit select{width:100%}.party-search{display:flex;gap:8px;flex:1}.party-search input{flex:1}.party-create{position:static!important;box-shadow:none!important;border:0!important;background:transparent!important;margin-top:12px}.contact-list{display:grid;gap:8px;margin-bottom:12px}.contact-list>div{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:9px;background:#faf8f4;border-radius:9px}.contact-list small{display:block;color:#777;margin-top:3px}.wa-button{background:#27835a;color:#fff;text-decoration:none;padding:7px 10px;border-radius:7px;white-space:nowrap}.money-in{color:#9b3b2e}.money-out{color:#176b45}.hint{color:#7c736a;font-size:12px}
@media(max-width:1000px){.finance-cards{grid-template-columns:repeat(2,1fr)}.private-finance-grid{grid-template-columns:1fr}.finance-inline-edit{width:100%}}
@media(max-width:760px){.private-banner{display:block}.private-banner span{display:block;margin-top:6px}.finance-cards{grid-template-columns:1fr 1fr}.finance-cards article{padding:12px}.finance-cards strong{font-size:19px}.finance-month{display:grid;grid-template-columns:1fr}.finance-month label,.finance-month input,.finance-month button,.finance-month a{width:100%}.party-search{display:grid;grid-template-columns:1fr;width:100%}.section-head{display:block}.mobile-card-table{display:block}.mobile-card-table thead{display:none}.mobile-card-table tbody{display:grid;gap:10px}.mobile-card-table tr{display:grid!important;grid-template-columns:1fr 1fr;border:1px solid #e6dfd5;border-radius:12px;padding:9px;background:#fff}.mobile-card-table td{display:block;border:0;padding:7px}.mobile-card-table td::before{content:attr(data-label);display:block;font-size:11px;color:#7b7269;font-weight:700;margin-bottom:4px}.mobile-card-table td:first-child{grid-column:1/-1}.contact-list>div{grid-template-columns:1fr auto}.contact-list .wa-button{grid-column:2}.finance-inline-edit{grid-template-columns:1fr;min-width:260px}.finance-table:not(.mobile-card-table){min-width:900px}}
@media(max-width:480px){.finance-cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-3{grid-column:auto}.contact-list>div{grid-template-columns:1fr}.contact-list .wa-button{grid-column:auto}}
.header-user{display:flex;gap:10px;align-items:center}.custody-chip{background:#211b19;color:#e4c57f;border:1px solid #5c4a2d;border-radius:999px;padding:7px 11px;text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}@media(max-width:760px){.header-user{display:grid;justify-items:end}.custody-chip{font-size:11px;padding:6px 9px}}
/* v1.25.23 reversible finance movements */
.tag.warn{background:#fff0c7;color:#775500}.voided-row{opacity:.72;background:#fafafa}.voided-row td{text-decoration:none}.voided-row td:nth-child(-n+7){text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:#b6aca1}.finance-actions{min-width:180px}.finance-actions details{margin:4px 0}.finance-actions summary{cursor:pointer;color:#5d534a}.danger-text{color:#a9251c!important}.danger-button{background:#b53a31}.finance-void-form{position:static!important;display:grid!important;grid-template-columns:minmax(180px,1fr) auto;gap:7px!important;width:min(420px,75vw);box-shadow:none!important}.finance-entry-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.finance-entry-actions details{margin:0}.finance-entry-edit{position:static!important;display:grid!important;grid-template-columns:repeat(2,minmax(150px,1fr));gap:7px!important;width:min(680px,88vw);box-shadow:none!important}.finance-entry-edit .span-2{grid-column:1/-1}.finance-void-note{font-size:12px;color:#8a5b1d;margin-top:4px}
@media(max-width:760px){.finance-entry-actions{display:grid;grid-template-columns:1fr}.finance-entry-edit,.finance-void-form{grid-template-columns:1fr;width:100%;min-width:260px}.finance-entry-edit .span-2{grid-column:auto}}

/* v1.25.25 private finance owner reporting + asset register */
.asset-source-note{border-right:4px solid var(--gold)}.asset-source-note p{margin:6px 0 0;color:#6f675f;line-height:1.7}.asset-form{margin-top:14px}.asset-finance-link{display:flex!important;align-items:center;gap:8px;background:#faf6ed;border:1px solid #eadfc7;border-radius:8px;padding:10px}.asset-finance-link input{width:auto!important}.asset-finance-link small{display:block;color:#7a7066}.assets-table td small{display:block;color:#777;margin-top:4px;line-height:1.4}.assets-table .tag+.tag{margin-right:4px}.asset-edit-form{grid-template-columns:repeat(2,minmax(145px,1fr))!important}
@media(max-width:760px){.asset-edit-form{grid-template-columns:1fr!important}.assets-kpis{grid-template-columns:1fr 1fr}}
