@import "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&display=swap";:root{--black:#000;--white:#fff;--accent:#00d9ff;--font-mono:"Roboto Mono", monospace;--size-monumental:64px;--size-body:16px;--size-small:12px;--grid:8px;scrollbar-color:var(--black) transparent;caret-color:var(--accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--black:#efefef;--white:#121212;--accent:#66f6ff;scrollbar-color:var(--black) transparent;caret-color:var(--accent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip}body{font-family:var(--font-mono);font-size:var(--size-body);color:var(--black);background:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.4}::selection{background:var(--accent);color:var(--black)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{min-width:44px;min-height:44px}input{font:inherit;font-size:max(1rem,16px)}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}#root{flex-direction:column;min-height:100vh;display:flex}.app-container{flex-direction:column;flex:1;display:flex}.screen{padding:calc(var(--grid) * 3);flex:1;padding-bottom:80px;overflow-y:auto}.tab-bar{border-top:1px solid var(--black);background:var(--white);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-button{padding:calc(var(--grid) * 2);font-family:var(--font-mono);font-size:var(--size-small);color:var(--black);text-align:center;cursor:pointer;border:none;border-right:1px solid var(--black);background:0 0;flex:1;transition:background .15s}.tab-button:last-child{border-right:none}.tab-button:hover{background:#00d9ff1a}.tab-button.active{background:var(--black);color:var(--white)}.monumental{font-size:var(--size-monumental);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.label{font-size:var(--size-small);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--grid)}.budget-status{margin-bottom:calc(var(--grid) * 4)}.remaining-budget{margin-bottom:calc(var(--grid) * 2)}.budget-limit-info{font-size:var(--size-small);opacity:.5}.set-budget-prompt{padding:calc(var(--grid) * 6) 0;text-align:center}.set-budget-prompt .label{font-size:var(--size-body);margin-bottom:calc(var(--grid) * 4);opacity:.7}.barcode-container{margin:calc(var(--grid) * 4) 0;padding:calc(var(--grid) * 2) 0;border-top:1px solid var(--black);border-bottom:1px solid var(--black)}.barcode-field{justify-content:space-between;align-items:flex-end;gap:calc(var(--grid) / 2);height:120px;display:flex}.barcode-bar{background:var(--black);flex:1;min-height:2px;transition:height .15s}.barcode-bar.today{background:var(--accent)}.barcode-labels{margin-top:var(--grid);font-size:var(--size-small);justify-content:space-between;display:flex}.barcode-label{text-align:center;opacity:.5;width:14.2857%}.barcode-label.today{opacity:1;font-weight:700}.purchase-log{margin-top:calc(var(--grid) * 3)}.log-header{gap:calc(var(--grid) * 2);padding-bottom:var(--grid);border-bottom:1px solid var(--black);margin-bottom:var(--grid);font-size:var(--size-small);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:1fr auto;display:grid}.log-list{list-style:none}.log-item{gap:calc(var(--grid) * 2);padding:var(--grid) 0;border-bottom:1px solid #0000001a;grid-template-columns:1fr auto auto;align-items:center;display:grid}.log-item:hover{background:#00000005}.log-description{font-size:var(--size-body)}.log-amount{font-size:var(--size-body);text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.log-delete{border:1px solid var(--black);color:var(--black);font-family:var(--font-mono);font-size:var(--size-small);padding:calc(var(--grid) / 2) var(--grid);cursor:pointer;background:0 0;transition:all .15s}.log-delete:hover{background:var(--black);color:var(--white)}.log-empty{padding:calc(var(--grid) * 4) 0;text-align:center;font-size:var(--size-body);opacity:.5}.form-container{max-width:480px;margin:0 auto}.form-group{margin-bottom:calc(var(--grid) * 3)}.form-label{font-size:var(--size-small);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--grid);display:block}.form-input{width:100%;padding:calc(var(--grid) * 2);font-family:var(--font-mono);font-size:var(--size-body);color:var(--black);background:var(--white);border:2px solid var(--black);transition:border-color .15s}.form-input:focus{border-color:var(--accent);outline:none}.form-input::placeholder{color:#0000004d}.button-primary{width:100%;padding:calc(var(--grid) * 2);background:var(--accent);color:var(--black);border:2px solid var(--black);font-family:var(--font-mono);font-size:var(--size-body);cursor:pointer;font-weight:700;transition:transform .15s}.button-primary:hover:not(:disabled){transform:translateY(-2px)}.button-primary:active:not(:disabled){transform:translateY(0)}.button-primary:disabled{opacity:.3;cursor:not-allowed}.modal-overlay{padding:calc(var(--grid) * 3);z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--white);border:2px solid var(--black);padding:calc(var(--grid) * 3);width:100%;max-width:480px}.modal-title{font-size:calc(var(--size-body) * 1.5);margin-bottom:calc(var(--grid) * 3);font-weight:700}.modal-actions{gap:var(--grid);margin-top:calc(var(--grid) * 3);display:flex}.button-secondary{padding:calc(var(--grid) * 2);background:var(--white);color:var(--black);border:2px solid var(--black);font-family:var(--font-mono);font-size:var(--size-body);cursor:pointer;flex:1;font-weight:700;transition:background .15s}.button-secondary:hover{background:#0000000d}@media (width<=768px){.monumental{font-size:48px}.screen{padding:calc(var(--grid) * 2)}.barcode-field{height:80px}.log-item{gap:var(--grid);grid-template-columns:1fr auto}.log-description,.log-amount{font-size:var(--size-small)}.log-delete{margin-top:var(--grid);grid-column:1/-1}.modal-actions{flex-direction:column}}@media (width<=480px){.monumental{font-size:36px}.barcode-field{height:60px}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}@keyframes barcodePulse{0%,to{opacity:1}50%{opacity:.7}}.barcode-bar.today{animation:2s ease-in-out infinite barcodePulse}}@media (width<=480px){body,.container,[class*=container],section,header,footer,nav,main,article{padding-inline:max(1rem,16px)}}p,li,dt,dd,blockquote,figcaption,td,th{max-width:min(75ch,100%)}
