:root{--bg: #f7f8f6;--card: #ffffff;--ink: #1f2a24;--muted: #6b7770;--line: #e3e7e3;--brand: #0aad0a;--brand-ink: #067706;--warn-bg: #fff7e6;--warn-line: #ffd591;--danger: #c0392b}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--brand-ink);text-decoration:none}.muted{color:var(--muted)}.strong{font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}.topbar{border-bottom:1px solid var(--line);background:var(--card)}.topbar-inner{width:100%;max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.auth{display:inline-flex;align-items:center;gap:8px}.auth-avatar{width:24px;height:24px;border-radius:50%}.auth-email{font-size:13px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-btn{font:inherit;font-size:13px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}.auth-btn:hover{background:var(--bg)}.google-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;font-weight:500;background:#fff;color:#3c4043;border:1px solid #dadce0;box-shadow:0 1px 2px #3c40431a;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease}.google-btn:hover{background:#f8faff;border-color:#d2e3fc;box-shadow:0 1px 3px #3c40432e}.google-btn:active{background:#f1f5fd}.google-icon{flex:none}.storage-note{margin-top:10px;font-size:13px}.brand{display:inline-flex;align-items:center;gap:8px;font-size:18px;color:var(--ink)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:var(--brand);color:#fff;font-weight:800;font-size:15px;line-height:1}.brand-name{font-weight:400;color:var(--muted);letter-spacing:-.01em}.brand-name strong{font-weight:800;color:var(--brand-ink)}.container{width:100%;max-width:1080px;margin:0 auto;padding:24px 20px 48px;flex:1}.footer{border-top:1px solid var(--line);background:var(--card);padding:16px 20px;display:flex;gap:12px;justify-content:center;align-items:center;font-size:13px;color:var(--muted)}.footer a{color:var(--brand-ink)}.hero{max-width:640px}.hero h1{margin:8px 0;font-size:28px}.uploader{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);padding:16px;border-radius:12px;margin:16px 0}.dropzone{flex:1;min-width:240px;display:flex;align-items:center;gap:12px;padding:16px;border:2px dashed var(--line);border-radius:10px;background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--brand)}.dropzone.dragging{border-color:var(--brand);background:#eef7ee}.dropzone-icon{font-size:22px;line-height:1}.dropzone-hint{display:flex;flex-direction:column;line-height:1.35}.dropzone-hint strong{color:var(--ink)}.dropzone-hint .muted{font-size:13px}.dropzone-file{font-weight:600;color:var(--brand-ink);word-break:break-all}button{background:var(--brand);color:#fff;border:0;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer}button:disabled{opacity:.6;cursor:default}.error{color:var(--danger)}.tip{margin-top:16px}.tip summary{cursor:pointer;color:var(--brand-ink)}.tip ol{margin:8px 0 0;padding-left:20px;color:var(--muted);font-size:14px}.tip ol li{margin:4px 0}.how{max-width:640px;margin-top:32px}.how h2{font-size:16px;margin:0 0 10px}.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:flex;flex-direction:column;gap:10px}.steps li{position:relative;padding-left:40px;counter-increment:step;font-size:14px;color:var(--muted)}.steps li strong{color:var(--ink)}.steps li:before{content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;font-weight:700;font-size:13px}.saved{margin-top:28px}.saved h2{font-size:16px;margin:0 0 10px}.receipt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.receipt-li{display:flex;align-items:stretch;gap:6px}.receipt-row{flex:1;display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink)}.row-del{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:0 12px;font-size:15px}.row-del:hover{border-color:var(--danger)}.receipt-row:hover{border-color:var(--brand)}.r-merchant{font-weight:600}.r-date{flex:1}.r-count{font-size:13px}.r-total{font-weight:600;min-width:80px;text-align:right}.badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:var(--brand);color:#fff;padding:2px 7px;border-radius:999px}.badge-muted{background:#e3e7e3;color:var(--muted)}.receipt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.receipt-head h1{margin:0 0 2px}.save-bar{display:flex;align-items:center;gap:10px}.save-status{font-size:13px;font-weight:600}.save-status.dirty{color:#b9770e}.save-status.clean{color:var(--brand-ink)}.item-group{display:flex;flex-direction:column;gap:8px}.item-group+.item-group{margin-top:8px}.group-header{display:flex;justify-content:space-between;align-items:baseline;padding:4px 2px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.group-name{font-weight:700;color:var(--muted)}.split-layout{display:grid;grid-template-columns:1fr 320px;gap:24px;margin-top:16px}@media(max-width:820px){.split-layout{grid-template-columns:1fr}}.banner{background:var(--card);border:1px solid var(--line);padding:10px 14px;border-radius:8px;margin:8px 0}.banner-warn{background:var(--warn-bg);border-color:var(--warn-line)}.items-list{display:flex;flex-direction:column;gap:8px}.item-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.item-top{display:flex;align-items:center;gap:8px}.item-price{display:flex;align-items:center}.item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;margin:4px 0 8px}.item-meta .tag{text-transform:uppercase;letter-spacing:.03em;font-size:10px;background:#eef1ee;padding:1px 6px;border-radius:4px}.item-meta .save{color:var(--brand-ink)}.item-meta .replaces{color:#b9770e;background:var(--warn-bg);border:1px solid var(--warn-line);padding:1px 6px;border-radius:4px}.qty-edit{display:inline-flex;align-items:center;gap:2px}.cell-input{border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:6px;font:inherit}.cell-input:focus{border-color:var(--line);background:#fbfcfb;outline:none}.cell-input.name{flex:1;font-weight:500;min-width:160px}.cell-input.num{text-align:right}.cell-input.num.total{width:84px;font-weight:600}.cell-input.num.tiny{width:52px;padding:2px 4px;border:1px solid var(--line)}.item-share{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.share-label{font-size:12px}.chip{background:#eef1ee;color:var(--ink);border:1px solid var(--line);padding:3px 8px;border-radius:999px;font-size:12px;font-weight:500;cursor:pointer}.chip-on{background:var(--brand);color:#fff;border-color:var(--brand)}.share-chip{display:inline-flex;align-items:center;gap:4px;background:#eaf6ea;border:1px solid var(--brand);color:var(--brand-ink);padding:2px 6px;border-radius:999px;font-size:12px}.share-chip-name{font-weight:600}.step{background:#fff;color:var(--brand-ink);border:1px solid var(--brand);width:18px;height:18px;line-height:1;padding:0;border-radius:50%;font-weight:700}.step:disabled{opacity:.35;cursor:default}.share-weight{width:34px!important;text-align:center;background:#fff!important}.share-weight:disabled{opacity:.5}.pct{font-variant-numeric:tabular-nums;opacity:.8;min-width:30px;text-align:right}.chip-x{background:none;color:var(--danger);padding:0 2px;font-weight:700}.items-foot{display:flex;justify-content:space-between;padding:8px 4px 0;font-size:14px}.link-danger{background:none;color:var(--danger);padding:2px 6px;font-weight:700}.split-panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;align-self:start;position:sticky;top:16px}.split-panel h2{margin:0 0 12px;font-size:18px}.add-person{display:flex;gap:8px;margin-bottom:12px}.add-person input{flex:1;padding:8px;border:1px solid var(--line);border-radius:8px}.shares{list-style:none;margin:0;padding:0}.shares li{padding:10px 0;border-bottom:1px solid var(--line)}.share-head{display:flex;align-items:center;gap:8px}.share-name{font-weight:600;flex:1}.share-total{font-size:18px;font-weight:700}.share-detail{font-size:12px;margin:2px 0 6px}.charge-toggles{display:flex;gap:6px;flex-wrap:wrap}.charge-toggles .chip{cursor:pointer}.charge-switch{flex-basis:100%;display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;color:var(--muted)}.charge-switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;flex:none;width:34px;height:20px;background:#cdd3cd;border-radius:999px;transition:background .15s}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px #00000040}.charge-switch input:checked+.switch-track{background:var(--brand)}.charge-switch input:checked+.switch-track .switch-thumb{transform:translate(14px)}.charge-switch input:focus-visible+.switch-track{outline:2px solid var(--brand-ink);outline-offset:2px}.switch-label{font-weight:600}.chip-off{background:#f4f5f4;color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px;opacity:.8}.split-totals{margin:12px 0 0}.split-totals>div{display:flex;justify-content:space-between;padding:3px 0}.split-totals dt,.split-totals dd{margin:0}.split-totals .grand{font-weight:700;border-top:1px solid var(--line);margin-top:6px;padding-top:8px}.warn-row{color:var(--danger)}
