*,:before,:after{box-sizing:border-box;margin:0}body{min-height:100dvh;margin:0}#root{min-height:100dvh}:root{--bg:#110f0d;--surface:#1a1714;--surface-raised:#211e1a;--border:#2d2822;--border-light:#3a342c;--text:#cdc5b8;--text-bright:#ede7dc;--text-muted:#78716a;--accent:#c4835a;--accent-hover:#d9a07a;--accent-dim:#c4835a1f;--red:#b85c5c;--radius-sm:6px;--radius:10px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Sora,system-ui,sans-serif;font-size:15px;line-height:1.5}body{background:var(--bg)}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.shell{max-width:680px;margin:0 auto;padding:48px 20px 120px}.receipt-thumb-wrap{z-index:20;animation:.52s cubic-bezier(.19,1,.22,1) both thumb-in;position:fixed;top:50%;left:32px;transform:translateY(-50%)}.receipt-thumb{cursor:zoom-in;transform-origin:0;will-change:transform;background:var(--surface);border:1px solid var(--border-light);border-radius:10px;width:144px;transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s cubic-bezier(.16,1,.3,1);overflow:hidden;box-shadow:0 4px 14px #0006,0 1px 3px #0000004d}.receipt-thumb img{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;display:block}.receipt-thumb:hover{transform:scale(3.2);box-shadow:0 30px 80px #0009,0 8px 24px #0006}@keyframes thumb-in{0%{opacity:0;transform:translateY(-50%)translate(-24px)}to{opacity:1;transform:translateY(-50%)translate(0)}}@media (prefers-reduced-motion:reduce){.receipt-thumb-wrap{animation:none}.receipt-thumb{transition:none}.receipt-thumb:hover{transform:scale(1.6)}}@media (width<=1100px){.receipt-thumb-wrap{display:none}}.masthead{margin-bottom:48px}.masthead h1{letter-spacing:-1.5px;color:var(--text-bright);margin-bottom:16px;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(40px,8vw,56px);font-weight:700;line-height:.95}.tagline{color:var(--text-muted);max-width:340px;font-size:14px}.setup{border-bottom:1px solid var(--border);margin-bottom:40px;padding-bottom:40px}.field{margin-bottom:20px}.field-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.text-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-bright);outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.text-input:focus{border-color:var(--accent)}.upload-zone input[type=file]{background:var(--surface);border:1px dashed var(--border-light);border-radius:var(--radius);width:100%;color:var(--text-muted);cursor:pointer;padding:12px;font-family:inherit;font-size:13px}.setup-actions{margin-top:16px}.status{color:var(--text-muted);margin-top:16px;font-size:13px}.status.error{color:var(--red)}.btn-ghost{border:1px dashed var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;padding:12px;font-family:inherit;font-size:13px;font-weight:500;transition:color .15s,border-color .15s;display:block}.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}.btn-primary{background:var(--accent);border-radius:var(--radius-sm);color:#110f0d;cursor:pointer;border:none;width:100%;padding:14px;font-family:inherit;font-size:14px;font-weight:600;transition:background-color .15s;display:block}.btn-primary:hover{background:var(--accent-hover)}.receipt-section{margin-bottom:40px}.receipt-header{margin-bottom:32px}.merchant-input{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-bright);background:0 0;border-radius:0;outline:none;margin-bottom:20px;padding:8px 0;font-family:inherit;font-size:20px;font-weight:600;transition:border-color .15s}.merchant-input:focus{border-color:var(--accent)}.receipt-totals{gap:16px;display:flex}.receipt-total-field{flex-direction:column;flex:1;gap:4px;display:flex}.receipt-total-field .total-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:600}.receipt-total-field .computed{color:var(--text-bright);font-variant-numeric:tabular-nums;padding:10px 0;font-size:14px;font-weight:500}.receipt-total-field.total-col .computed{color:var(--accent);font-weight:600}.receipt-total-field input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-bright);font-variant-numeric:tabular-nums;outline:none;padding:10px 8px;font-family:inherit;font-size:14px;transition:border-color .15s}.receipt-total-field input:focus{border-color:var(--accent)}.items-list{margin-bottom:16px}.item-row{border-bottom:1px solid var(--border);padding:16px 0}.item-row:first-child{border-top:1px solid var(--border)}.item-fields{align-items:center;gap:10px;margin-bottom:10px;display:flex}.item-name{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-bright);outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:14px;font-weight:500;transition:border-color .15s}.item-name:focus{border-color:var(--accent)}.item-numbers{align-items:flex-end;gap:8px;display:flex}.num-field{width:72px}.num-field .num-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:500;display:block}.num-field input{text-align:right;font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-bright);outline:none;padding:8px 6px;font-family:inherit;font-size:13px;transition:border-color .15s}.num-field input:focus{border-color:var(--accent)}.num-field.line-total{width:64px}.num-field.line-total span{text-align:right;color:var(--text-bright);font-variant-numeric:tabular-nums;padding:8px 0;font-size:13px;font-weight:500;display:block}.remove-btn{border-radius:var(--radius-sm);width:32px;min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-size:16px;transition:color .15s,border-color .15s;display:flex}.remove-btn:hover{color:var(--red);border-color:var(--red)}.item-meta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.toggle-label{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex}.toggle-label input{display:none}.toggle-track{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;flex-shrink:0;width:32px;height:18px;transition:background-color .2s,border-color .2s;position:relative}.toggle-thumb{background:var(--text-muted);border-radius:50%;width:12px;height:12px;transition:transform .2s,background-color .2s;position:absolute;top:2px;left:2px}.toggle-label input:checked+.toggle-track{background:var(--accent-dim);border-color:var(--accent)}.toggle-label input:checked+.toggle-track .toggle-thumb{background:var(--accent);transform:translate(14px)}.person-chips{flex-wrap:wrap;flex:1;gap:6px;display:flex}.chip{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}.chip.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.chip-all{text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.chip:hover:not(.active){border-color:var(--border-light);color:var(--text)}.calculate-btn{margin-top:24px}.results-section{border-top:1px solid var(--border);padding-top:40px}.results-header-row{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.results-section h2{color:var(--text-bright);margin:0;font-family:"Source Serif 4",Georgia,serif;font-size:24px;font-weight:700}.btn-export{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .15s,color .15s}.btn-export:hover{border-color:var(--accent);color:var(--accent)}.results-table{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.results-header{background:var(--surface);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);grid-template-columns:1fr 90px 90px 90px;padding:10px 16px;font-size:10px;font-weight:600;display:grid}.results-header span:not(:first-child){text-align:right}.result-person{border-top:1px solid var(--border)}.result-row{font-variant-numeric:tabular-nums;cursor:pointer;grid-template-columns:1fr 90px 90px 90px;padding:12px 16px;font-size:14px;transition:background-color .1s;display:grid}.result-row:hover{background:var(--surface)}.result-row span:not(:first-child){text-align:right}.person-name{color:var(--text-bright);font-weight:500}.person-total{color:var(--accent);font-weight:600}.result-detail{background:var(--surface);padding:0 16px 12px}.detail-row{color:var(--text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.grand-total{border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;padding:14px 16px;font-size:14px;font-weight:600;display:flex}.grand-total span:first-child{color:var(--text-bright)}.grand-total span:last-child{color:var(--accent);font-variant-numeric:tabular-nums}@media (width<=640px){.shell{padding:32px 16px 80px}.item-fields{flex-wrap:wrap}.item-name{flex:none;width:100%}.item-numbers{flex:1}.receipt-totals{flex-direction:column;gap:12px}.receipt-total-field{flex-direction:row;justify-content:space-between;align-items:center}.receipt-total-field input{width:100px}.results-header,.result-row{grid-template-columns:1fr 65px 65px 75px;padding:10px 12px;font-size:13px}.results-header{font-size:9px}}
