:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--paper:#f1ecdf;--paper-card:#faf7ef;--paper-bright:#fffdf8;--ink:#1f2c38;--ink-soft:#5b6672;--line:#ded6c3;--green:#2f6f5e;--green-deep:#234f43;--gold:#b8863b;--error:#b23a2f;--shadow-soft:0 1px 2px #1f2c260f;--shadow-card:0 4px 16px #1f2c2614;--font-display:"Fraunces", "Iowan Old Style", serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}body{background:var(--paper);color:var(--ink);font-family:var(--font-body)}a{color:inherit}.page{max-width:720px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.25rem;padding-bottom:1.25rem;display:flex}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 .2rem;font-size:.7rem}.masthead h1{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:2.1rem;font-weight:600}.nav-link{font-family:var(--font-body);color:var(--green);white-space:nowrap;border-bottom:1px solid #0000;padding-bottom:.15rem;font-size:.9rem;font-weight:600;text-decoration:none}.nav-link:hover{border-bottom-color:var(--green)}.entry-card{background:var(--paper-card);border:1px solid var(--line);box-shadow:var(--shadow-soft);border-radius:10px;flex-direction:column;gap:1.1rem;padding:1.5rem 1.5rem 1.75rem;display:flex}.field-row{gap:1.25rem;display:flex}.field-row.two-up{grid-template-columns:1fr 1fr;display:grid}.entry-card label{color:var(--ink-soft);flex-direction:column;gap:.4rem;width:100%;font-size:.8rem;font-weight:600;display:flex}.entry-card input{font-family:var(--font-mono);color:var(--ink);border:none;border-bottom:1.5px solid var(--line);background:0 0;border-radius:0;padding:.5rem .1rem;font-size:1rem;transition:border-color .15s}.entry-card input::placeholder{color:#b7ae98;font-family:var(--font-body)}.entry-card input:focus{border-bottom-color:var(--green);outline:none}.entry-card select{font-family:var(--font-body);color:var(--ink);border:none;border-bottom:1.5px solid var(--line);appearance:none;background:0 0;background-image:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%), linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 12px),calc(100% - 7px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:0;padding:.5rem 1.25rem .5rem .1rem;font-size:.95rem;transition:border-color .15s}.entry-card select:focus{border-bottom-color:var(--green);outline:none}.primary-button{font-family:var(--font-body);letter-spacing:.02em;color:var(--paper-bright);background:var(--green);cursor:pointer;border:none;border-radius:7px;align-self:flex-start;margin-top:.25rem;padding:.65rem 1.4rem;font-size:.88rem;font-weight:600;transition:background .15s,transform .1s}.primary-button:hover:not(:disabled){background:var(--green-deep)}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{opacity:.55;cursor:not-allowed}.error{color:var(--error);border-left:3px solid var(--error);background:#fbeeec;border-radius:4px;margin:1rem 0 0;padding:.7rem 1rem;font-size:.88rem}.confirmation{color:var(--green-deep);border-left:3px solid var(--green);background:#ecf4f1;border-radius:4px;margin:1rem 0 0;padding:.7rem 1rem;font-size:.88rem}.ledger{margin-top:2.5rem}.ledger-heading{justify-content:space-between;align-items:baseline;margin-bottom:.85rem;display:flex}.ledger-heading h2{font-family:var(--font-display);margin:0;font-size:1.3rem;font-weight:600}.ledger-count{font-family:var(--font-mono);color:var(--ink-soft);font-size:.78rem}.empty-state{text-align:center;color:var(--ink-soft);background:var(--paper-card);border:1px dashed var(--line);border-radius:10px;padding:1.75rem 1rem;font-size:.92rem;font-style:italic}.table-wrap{background:var(--paper-card);border:1px solid var(--line);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%}thead th{text-align:right;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:.65rem .9rem;font-size:.68rem;font-weight:500}thead th:first-child{text-align:left}tbody td{border-bottom:1px solid #ece5d3;padding:.7rem .9rem;font-size:.92rem}tbody tr:last-child td{border-bottom:none}.cell-name{font-family:var(--font-body);font-weight:500}.cell-num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.cell-total{color:var(--gold);font-weight:600}.increment-button{font-family:var(--font-mono);color:var(--ink-soft);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:5px;padding:.25rem .55rem;font-size:.75rem;font-weight:600;transition:color .15s,border-color .15s}.increment-button:hover:not(:disabled){color:var(--green-deep);border-color:var(--green)}.increment-button:disabled{opacity:.5;cursor:not-allowed}.view-bill-button{font-family:var(--font-body);color:var(--paper-bright);background:var(--ink);border-radius:7px;margin-top:1.5rem;padding:.7rem 1.4rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.view-bill-button:hover{background:var(--green-deep)}.bill-page{max-width:100%;padding-top:1.75rem}.bill-page-nav{max-width:480px;margin:0 auto 1.5rem}.receipt-frame{justify-content:center;padding-bottom:2rem;display:flex}.receipt{background:var(--paper-bright);clip-path:polygon(0% 0,4% 8px,8% 0,12% 8px,16% 0,20% 8px,24% 0,28% 8px,32% 0,36% 8px,40% 0,44% 8px,48% 0,52% 8px,56% 0,60% 8px,64% 0,68% 8px,72% 0,76% 8px,80% 0,84% 8px,88% 0,92% 8px,96% 0,100% 8px,100% 100%,96% calc(100% - 8px),92% 100%,88% calc(100% - 8px),84% 100%,80% calc(100% - 8px),76% 100%,72% calc(100% - 8px),68% 100%,64% calc(100% - 8px),60% 100%,56% calc(100% - 8px),52% 100%,48% calc(100% - 8px),44% 100%,40% calc(100% - 8px),36% 100%,32% calc(100% - 8px),28% 100%,24% calc(100% - 8px),20% 100%,16% calc(100% - 8px),12% 100%,8% calc(100% - 8px),4% 100%,0% calc(100% - 8px));filter:drop-shadow(0 18px 26px #1f2c2629)drop-shadow(0 2px 6px #1f2c2614);width:min(420px,100%);position:relative}.receipt-body{padding:2.5rem 2rem 2.25rem}.receipt-eyebrow{text-align:center;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.68rem}.receipt-title{text-align:center;font-family:var(--font-display);color:var(--ink);margin:.35rem 0 .15rem;font-size:1.7rem;font-style:italic;font-weight:600}.receipt-meta{text-align:center;font-family:var(--font-mono);color:var(--ink-soft);margin:0;font-size:.75rem}.receipt-divider{border-top:1px dashed var(--line);margin:1.35rem 0}.receipt-lines{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.receipt-line-main{align-items:baseline;gap:.4rem;display:flex}.receipt-line-name{font-family:var(--font-body);white-space:nowrap;font-size:.94rem;font-weight:500}.receipt-line-dots{border-bottom:1px dotted #c9c0a9;flex:1;height:.6em;margin:0 .25rem}.receipt-line-amount{font-family:var(--font-mono);color:var(--ink);white-space:nowrap;font-size:.94rem;font-weight:600}.receipt-line-sub{font-family:var(--font-mono);color:var(--ink-soft);margin-top:.15rem;font-size:.74rem}.receipt-summary{flex-direction:column;gap:.4rem;display:flex}.receipt-summary-row{font-family:var(--font-mono);color:var(--ink-soft);justify-content:space-between;font-size:.9rem;display:flex}.receipt-grand-total{border-top:1px solid var(--line);color:var(--ink);margin-top:.4rem;padding-top:.6rem;font-size:1.15rem;font-weight:700}.receipt-item-count{text-align:center;font-family:var(--font-mono);color:var(--ink-soft);margin:.6rem 0 0;font-size:.72rem}.receipt-stamp{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);border:1.5px solid var(--green);opacity:.75;border-radius:4px;padding:.3rem .7rem;font-size:.68rem;font-weight:600;position:absolute;top:2.4rem;right:1.6rem;transform:rotate(8deg)}@media (width<=560px){.masthead{flex-direction:column;align-items:flex-start;gap:.5rem}.field-row.two-up{grid-template-columns:1fr}thead th:nth-child(3),tbody td:nth-child(3){display:none}}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.masthead-actions{align-items:center;gap:1.1rem;display:flex}.customer-chip{font-family:var(--font-mono);color:var(--ink-soft);margin:.3rem 0 0;font-size:.78rem}.customer-id{color:var(--green-deep);font-weight:600}.text-button{font-family:var(--font-body);color:var(--ink-soft);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600;text-decoration:underline}.text-button:hover{color:var(--error)}.identity-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.identity-card{background:var(--paper-card);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow-card);text-align:center;border-radius:14px;padding:2.25rem 2rem}.identity-title{font-family:var(--font-display);color:var(--ink);margin:.3rem 0 1rem;font-size:1.9rem;font-weight:600}.identity-copy{color:var(--ink-soft);margin:0 0 1.5rem;font-size:.92rem;line-height:1.5}.identity-actions{flex-direction:column;gap:.75rem;display:flex}.identity-form{text-align:left;flex-direction:column;gap:1.25rem;display:flex}.identity-form label{color:var(--ink-soft);flex-direction:column;gap:.4rem;font-size:.8rem;font-weight:600;display:flex}.identity-form input{font-family:var(--font-mono);color:var(--ink);border:none;border-bottom:1.5px solid var(--line);text-align:center;background:0 0;padding:.55rem .1rem;font-size:1.05rem;transition:border-color .15s}.identity-form input:focus{border-bottom-color:var(--green);outline:none}.secondary-button{font-family:var(--font-body);color:var(--green-deep);border:1.5px solid var(--green);cursor:pointer;background:0 0;border-radius:7px;padding:.65rem 1.4rem;font-size:.88rem;font-weight:600;transition:background .15s}.secondary-button:hover{background:#ecf4f1}.identity-generated{flex-direction:column;align-items:center;gap:1rem;display:flex}.generated-id{font-family:var(--font-mono);letter-spacing:.04em;color:var(--gold);border:1.5px dashed var(--gold);background:#fbf3e6;border-radius:10px;padding:.9rem 1.2rem;font-size:1.4rem;font-weight:600}.field-row.three-up{grid-template-columns:1fr 1fr 1.4fr;display:grid}.qty-editor{align-items:center;gap:.4rem;display:flex}.qty-input{width:4.5rem;font-family:var(--font-mono);color:var(--ink);border:1px solid var(--line);background:0 0;border-radius:5px;padding:.3rem .4rem;font-size:.88rem}.qty-input:focus{border-color:var(--green);outline:none}.remove-button{font-family:var(--font-body);color:var(--error);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e3b3ac;border-radius:5px;padding:.3rem .6rem;font-size:.78rem;font-weight:600}.remove-button:hover:not(:disabled){background:#fbeeec}.remove-button:disabled{opacity:.5;cursor:not-allowed}tfoot td{border-bottom:none;border-top:1px dashed var(--line);padding:.55rem .9rem}tfoot tr:first-child td{border-top:1px solid var(--line)}.foot-label{font-family:var(--font-mono);color:var(--ink-soft);text-align:right;font-size:.78rem}.foot-total-row td{border-top:1.5px solid var(--line);padding-top:.75rem}.foot-total-label{color:var(--ink);font-size:.88rem;font-weight:600}.foot-total-value{font-size:1.05rem}.balance-banner{border:1px solid var(--line);border-radius:10px;margin-top:1.25rem;padding:.85rem 1.25rem;font-size:.92rem}.balance-due{color:var(--error);background:#fbeeec;border-color:#e3b3ac}.balance-credit{color:var(--gold);background:#f8ecd6;border-color:#e6cd9c}.balance-clear{color:var(--green-deep);background:#e3f0ea;border-color:#bcdccc}.balance-banner strong{font-family:var(--font-mono)}.pay-due-card{margin-top:1.25rem}.pay-due-title{font-family:var(--font-display);color:var(--ink);margin:0 0 .25rem;font-size:1.1rem;font-weight:600}.edited-tag{color:var(--gold);font-style:italic}.settle-card{background:var(--paper-card);border:1px solid var(--line);border-radius:10px;flex-direction:column;align-items:flex-start;gap:.85rem;margin-top:1.25rem;padding:1.25rem 1.5rem;display:flex}.settle-card label{color:var(--ink-soft);flex-direction:column;gap:.4rem;width:100%;max-width:260px;font-size:.8rem;font-weight:600;display:flex}.settle-card input{font-family:var(--font-mono);color:var(--ink);border:none;border-bottom:1.5px solid var(--line);background:0 0;padding:.5rem .1rem;font-size:1rem}.settle-card input:focus{border-bottom-color:var(--green);outline:none}.due-preview{color:var(--ink-soft);margin:0;font-size:.88rem}.due-preview strong{color:var(--gold)}.settle-hint{color:var(--ink-soft);margin:0;font-size:.78rem;font-style:italic}.transaction-list{flex-direction:column;gap:1rem;display:flex}.transaction-card{background:var(--paper-card);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.3rem}.transaction-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.transaction-date{font-family:var(--font-mono);color:var(--ink-soft);margin:0;font-size:.78rem}.transaction-items-summary{color:var(--ink);max-width:34ch;margin:.2rem 0 0;font-size:.88rem}.status-badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.25rem .65rem;font-size:.7rem;font-weight:600}.status-paid{color:var(--green-deep);background:#e3f0ea}.status-partial{color:var(--gold);background:#f8ecd6}.status-due{color:var(--error);background:#fbeeec}.transaction-amounts{border-top:1px dashed var(--line);gap:1.75rem;padding-top:.6rem;display:flex}.amount-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:.68rem;display:block}.amount-value{font-family:var(--font-mono);color:var(--ink);margin-top:.15rem;font-size:.95rem;font-weight:600;display:block}.amount-due{color:var(--error)}@media (width<=560px){.field-row.three-up{grid-template-columns:1fr}.masthead-actions{flex-wrap:wrap}.transaction-amounts{flex-wrap:wrap;gap:1.1rem}}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;margin:1.5rem 0 2.5rem;display:grid}.admin-stat-card{background:var(--paper-card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;display:flex}.admin-stat-value{font-family:var(--font-mono);color:var(--ink);font-size:1.3rem;font-weight:600}.admin-stat-due{color:var(--error)}.admin-stat-credit{color:var(--gold)}.admin-search-form{gap:.75rem;margin-bottom:1.25rem;display:flex}.admin-search-form input{font-family:var(--font-body);background:var(--paper-card);border:1px solid var(--line);border-radius:7px;flex:1;padding:.55rem .8rem;font-size:.95rem}.admin-search-form input:focus{border-color:var(--green);outline:none}.customer-id-cell{color:var(--green-deep);font-weight:600}.admin-customer-detail{background:var(--paper-card);border:1px solid var(--line);border-radius:10px;margin-top:1.5rem;padding:1.1rem 1.3rem}.admin-customer-detail>.transaction-card-header{margin-bottom:1rem}.admin-edit-grid{border-top:1px dashed var(--line);grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.85rem;margin-top:.5rem;padding-top:.75rem;display:grid}.admin-edit-grid label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);flex-direction:column;gap:.3rem;font-size:.72rem;display:flex}.admin-edit-grid input{font-family:var(--font-mono);border:1px solid var(--line);background:var(--paper-bright);border-radius:5px;padding:.4rem .5rem;font-size:.9rem}.admin-edit-grid input:focus{border-color:var(--green);outline:none}.admin-edit-note{grid-column:1/-1}.admin-edit-actions{align-items:center;gap:.75rem;margin-top:.85rem;display:flex}
