:root{color-scheme:light;--ink:#163029;--forest:#173d2f;--leaf:#2f6b4f;--mint:#e5f1e9;--cream:#faf8f1;--line:#d8ded8;--amber:#a85f00;--red:#9e2f2f;--shadow:0 10px 30px rgba(22,48,41,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink)}button,input,select,textarea{font:inherit}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1.25rem clamp(1rem,4vw,4rem);background:var(--forest);color:white}.topbar h1{margin:.1rem 0;font-size:clamp(1.5rem,3vw,2.2rem)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;font-weight:800;margin:0;color:#6d887d}.topbar .eyebrow{color:#bcd8c8}.period{display:flex;gap:.75rem}.period label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.period input,.period select{display:block;margin-top:.25rem;padding:.55rem;border-radius:.55rem;border:0;width:7rem;background:white;color:var(--ink)}main{max-width:1180px;margin:0 auto;padding:1.25rem clamp(.9rem,3vw,2rem) 4rem}.notice{display:flex;gap:.7rem;align-items:center;background:#fff5da;border:1px solid #f1d796;padding:.8rem 1rem;border-radius:.75rem;font-size:.88rem}.tabs{display:flex;gap:.5rem;overflow:auto;padding:1.25rem 0 .75rem}.tabs button{border:1px solid var(--line);border-radius:99px;padding:.65rem 1rem;background:white;color:var(--ink);white-space:nowrap;cursor:pointer}.tabs button.active{background:var(--forest);color:white;border-color:var(--forest)}.panel{display:none}.panel.active{display:block}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:1rem 0;gap:1rem}.section-heading h2{margin:.25rem 0;font-size:clamp(1.5rem,3vw,2rem)}.heading-actions,.action-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.status{background:var(--mint);color:var(--forest);font-weight:800;border-radius:99px;padding:.45rem .8rem}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1rem 0}.metric,.card,.form-card{background:white;border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow)}.metric{padding:1rem}.metric span{display:block;color:#67766f;font-size:.78rem}.metric strong{display:block;margin-top:.35rem;font-size:1.35rem}.metric small{display:block;margin-top:.25rem;color:#6c7973}.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.card{padding:1rem;margin:1rem 0}.card h3{margin-top:0}.row{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #edf0ed;padding:.72rem 0}.row:first-child{border-top:0}.review{border-left:4px solid var(--amber);padding:.65rem .75rem;background:#fff8e9;margin:.5rem 0}.review button{margin-top:.55rem}.muted{color:#68766f}.form-card{padding:1rem;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-card.flat{border:0;box-shadow:none;padding:0}.form-card.compact{margin-top:1rem}.form-card label,.inline-field{font-size:.8rem;font-weight:750}.form-card input,.form-card select,.form-card textarea,.inline-field input{display:block;width:100%;margin-top:.35rem;border:1px solid #bdc9c1;border-radius:.65rem;padding:.75rem;background:white;color:var(--ink)}.inline-field input{width:10rem}.wide{grid-column:1/-1}.receipt{border:1px dashed #9caf9f;border-radius:.75rem;padding:1rem;background:#f7fbf8}.receipt span{display:block;margin-top:.4rem;color:#68766f;font-weight:400}.primary,.secondary,.danger,.small{border:0;border-radius:.7rem;padding:.78rem 1rem;font-weight:800;cursor:pointer}.primary{background:var(--leaf);color:white}.primary:hover{background:var(--forest)}.secondary,.small{background:white;color:var(--forest);border:1px solid #9caf9f}.danger{background:#7b2d2d;color:white}.small{padding:.45rem .65rem;font-size:.78rem}.primary:disabled,.secondary:disabled,.danger:disabled,button:disabled{opacity:.45;cursor:not-allowed}.message{min-height:1.5rem;font-weight:700}.message.error{color:var(--red)}.hidden{display:none!important}details{border-top:1px solid #e8ece9;padding:.65rem 0}summary{cursor:pointer;font-weight:750}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.84rem}th,td{text-align:left;border-bottom:1px solid #e6ebe7;padding:.55rem .35rem}td:last-child,th:last-child{text-align:right}.pill{display:inline-block;border-radius:99px;padding:.22rem .45rem;font-size:.7rem;font-weight:800;background:var(--mint);color:var(--forest)}.pill.review_required{background:#fff0cc;color:#8a5300}.record,.shipping-row,.adjustment{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid #e8ece9}.record:first-child,.shipping-row:first-child,.adjustment:first-child{border-top:0}.record small,.shipping-row small,.shipping-row span,.adjustment small,.adjustment span{display:block;color:#68766f;margin-top:.2rem}.record-value,.shipping-money{text-align:right}.record-value .pill{display:block;margin-top:.3rem}.snapshot-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.snapshot-grid>div{background:#f7faf8;border-radius:.75rem;padding:.8rem}.snapshot-grid span,.snapshot-grid strong{display:block}.snapshot-grid span{font-size:.75rem;color:#68766f}.snapshot-grid code{display:block;margin-top:.3rem;overflow-wrap:anywhere;font-size:.72rem}footer{text-align:center;padding:1.5rem;color:#6f7b76;font-size:.8rem}
.top-actions{display:flex;align-items:center;gap:1rem}.calculator-button,.logout-button{background:#fff;color:var(--forest);border:0;border-radius:.65rem;padding:.65rem .9rem;font-weight:800;cursor:pointer}.logout-button{background:transparent;color:#fff;border:1px solid #bcd8c8}.required{float:right;color:#a3482a;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em}.field-help{display:block;margin-top:.35rem;color:#68766f;font-size:.72rem;font-weight:400}.sale-summary{background:var(--forest);color:#fff;border-radius:1rem;padding:1rem 1.2rem}.sale-summary>span{display:block;font-size:.72rem;letter-spacing:.12em;font-weight:800}.sale-summary>strong{display:block;font-size:clamp(1.65rem,4vw,2.4rem);margin:.2rem 0 .8rem}.summary-grid{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;font-size:.85rem}.summary-grid b{text-align:right}.record-main{min-width:0;flex:1}.transaction-detail{margin-top:.55rem}.transaction-detail summary{font-size:.78rem;color:var(--leaf)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem;margin:.7rem 0}.detail-grid dt{color:#65736c}.detail-grid dd{margin:0;text-align:right}.record.voided{opacity:.68;background:#f6efef;margin:0 -.5rem;padding:.85rem .5rem}.voided-pill{background:#ead7d7;color:#792d2d}.calculator{position:fixed;z-index:20;right:1rem;bottom:1rem;width:min(320px,calc(100vw - 2rem));background:white;border:1px solid var(--line);border-radius:1rem;box-shadow:0 20px 60px rgba(0,0,0,.25);padding:1rem}.calculator-head{display:flex;justify-content:space-between;align-items:center}.calculator-head button{border:0;background:transparent;font-size:1.5rem;cursor:pointer}.calculator output{display:block;background:#eff4f0;border-radius:.65rem;padding:.8rem;margin:.75rem 0;text-align:right;font-size:1.5rem;overflow-x:auto;min-height:3.2rem}.calculator-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem}.calculator-keys button{border:1px solid var(--line);border-radius:.55rem;background:#f9faf9;padding:.7rem;cursor:pointer;font-weight:700}.calculator-keys .equals{grid-row:span 2;background:var(--leaf);color:#fff}.calculator-keys .zero{grid-column:span 2}
.ledger-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.filter-tabs{display:flex;border:1px solid var(--line);border-radius:.7rem;overflow:hidden}.filter-tabs button{border:0;border-right:1px solid var(--line);background:white;padding:.6rem .9rem;cursor:pointer}.filter-tabs button:last-child{border-right:0}.filter-tabs button.active{background:var(--forest);color:white}.daily-ledger{min-width:0}.ledger-row{display:grid;grid-template-columns:9rem 5rem minmax(15rem,1fr) 12rem;gap:1rem;align-items:start;padding:1rem 0;border-top:1px solid #e8ece9}.ledger-row:first-child{border-top:0}.ledger-row small,.category-row small,.reminder small{display:block;color:#68766f;margin-top:.25rem}.ledger-row.voided{opacity:.68;background:#f6efef}.ledger-money{text-align:right}.ledger-money span{display:block}.ledger-money small{display:inline-block;border-radius:99px;padding:.2rem .45rem}.today-grid{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;margin-bottom:1rem}.reminder,.category-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid #e8ece9;padding:.75rem 0}.reminder:first-child,.category-row:first-child{border-top:0}.reminder-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.reminder select{padding:.45rem;border:1px solid #9caf9f;border-radius:.6rem;background:white}.payment-warning{display:block;color:var(--red);margin-top:.3rem}.text-button{border:0;background:transparent;color:var(--leaf);font-weight:800;padding:.4rem 0;cursor:pointer}.category-row{align-items:flex-start}
.validation-errors{border:1px solid #d7a7a7;border-radius:.75rem;background:#fff2f2;color:var(--red);padding:.75rem 1rem;font-weight:650}.validation-errors ul{margin:.35rem 0 .1rem;padding-left:1.2rem}.form-card [aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 2px rgba(158,47,47,.12)}.audit-history{width:100%;margin-top:.7rem;border-left:3px solid #9caf9f;padding-left:.75rem}.audit-entry{padding:.55rem 0;border-top:1px solid #e8ece9}.audit-entry:first-child{border-top:0}.audit-entry strong,.audit-entry small{display:block}.audit-entry ul{margin:.35rem 0 0;padding-left:1.15rem;font-size:.8rem}
.sync-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:1rem;background:rgba(255,255,255,.97);box-shadow:var(--shadow)}.sync-bar>div:first-child{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.2rem .65rem}.sync-bar small{grid-column:2;color:#68766f}.sync-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.connection-badge{display:inline-block;border-radius:99px;padding:.3rem .55rem;font-size:.68rem;font-weight:900;letter-spacing:.06em}.connection-badge.online{background:#d8f1df;color:#1f6039}.connection-badge.offline{background:#ffe3d6;color:#8f391b}.connection-badge.checking{background:#edf0ed;color:#56635d}.pending-card{border-left:4px solid var(--amber)}.pending-item{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;padding:.7rem 0;border-top:1px solid #e8ece9}.pending-item:first-child{border-top:0}.pending-item small{display:block;color:#68766f}.pending-state{font-weight:800;color:var(--amber);text-align:right}.pending-state.failed,.pending-state.conflict{color:var(--red)}.offline-dialog{width:min(480px,calc(100vw - 2rem));border:0;border-radius:1rem;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.35)}.offline-dialog::backdrop{background:rgba(10,27,21,.72)}.offline-dialog form{display:grid;gap:1rem;padding:1.4rem}.offline-dialog h2,.offline-dialog p{margin:0}.offline-dialog label{font-weight:750;font-size:.85rem}.offline-dialog input{display:block;width:100%;margin-top:.35rem;border:1px solid #bdc9c1;border-radius:.65rem;padding:.8rem;min-height:44px}.security-note{border-radius:.75rem;background:#fff5da;padding:.75rem;color:#6c5318;font-size:.8rem}.offline-limited .tabs button:not([data-tab="sale"]):not([data-tab="expense"]){opacity:.5}.offline-limited #new-category{display:none}.receipt-pending{color:var(--amber);font-weight:800}
.login-page{min-height:100vh;background:linear-gradient(145deg,var(--forest),#2f6b4f);display:grid;place-items:center;padding:1rem}.login-shell{width:min(430px,100%);padding:0}.login-card{background:#fff;border-radius:1rem;box-shadow:0 24px 70px rgba(0,0,0,.3);padding:clamp(1.25rem,5vw,2rem)}.login-card h1{margin:.25rem 0}.login-card form{display:grid;gap:1rem;margin-top:1.5rem}.login-card label{font-weight:750;font-size:.85rem}.login-card input{display:block;width:100%;margin-top:.35rem;border:1px solid #bdc9c1;border-radius:.65rem;padding:.8rem;min-height:44px}.login-card button{min-height:44px}
@media(max-width:760px){.topbar{align-items:flex-start;gap:1rem}.top-actions{align-items:flex-end}.period{flex-direction:column;gap:.35rem}.notice{align-items:flex-start;flex-direction:column}.sync-bar{position:static;align-items:stretch;flex-direction:column}.sync-actions button{flex:1}.metrics{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.form-card{grid-template-columns:1fr}.wide{grid-column:auto}.tabs{position:sticky;top:0;z-index:2;background:var(--cream)}.metric strong{font-size:1.15rem}.section-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%}.record,.shipping-row,.adjustment{align-items:flex-start}.snapshot-grid{grid-template-columns:1fr}.ledger-row{grid-template-columns:7rem 4.5rem minmax(12rem,1fr) 9rem;gap:.65rem}.reminder,.category-row{align-items:flex-start;flex-direction:column}.reminder-actions{justify-content:flex-start}}
@media(max-width:420px){.topbar{padding:1rem}.top-actions{flex-direction:column-reverse;gap:.5rem}.calculator-button,.logout-button{width:100%}.period input,.period select{width:6.3rem}.metrics{grid-template-columns:1fr}.form-card{padding:.8rem}.primary{position:sticky;bottom:.5rem;box-shadow:0 5px 20px rgba(0,0,0,.2)}.login-card .primary{position:static}.calculator{right:.5rem;bottom:.5rem;width:calc(100vw - 1rem)}.record{flex-direction:column}.record-value{text-align:left}.record-value .pill{display:inline-block;margin-left:.35rem}.ledger-controls{align-items:stretch}.ledger-controls .action-row,.filter-tabs{width:100%}.filter-tabs button{flex:1}.ledger-row{grid-template-columns:1fr;gap:.35rem}.ledger-money{text-align:left;display:grid;grid-template-columns:1fr 1fr}.ledger-time{display:flex;justify-content:space-between}.daily-totals{grid-template-columns:1fr 1fr}.dashboard-focus{grid-template-columns:1fr}.calculator-button,.logout-button,.period input,.period select,.tabs button,.filter-tabs button,.reminder select,.form-card input,.form-card select,.form-card textarea,.primary,.secondary,.small,.text-button,.calculator-keys button{min-height:44px}.transaction-detail .action-row{align-items:stretch}.transaction-detail .action-row button{flex:1}}

