:root{color:#1c2430;background:#f3f1eb;font-family:system-ui,Segoe UI,sans-serif;font-size:15px;line-height:1.25}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#f3f1eb}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}.screen{height:100dvh;display:flex;flex-direction:column;max-width:640px;margin:0 auto;padding-top:env(safe-area-inset-top)}.top,.filters,.soon,.add{padding-left:12px;padding-right:12px}.top{display:flex;align-items:center;justify-content:space-between;min-height:36px}.tools{display:flex;gap:12px}.file{display:none}.top h1{margin:0;font-size:16px;font-weight:650}.quiet{border:0;background:transparent;color:#5e675f;font-size:13px;padding:4px 0}.filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}.filters button,.choice{border:0;background:#e7e4db;border-radius:999px;height:28px;padding:0 10px;font-size:13px;white-space:nowrap}.filters button[aria-pressed=true],.choice[aria-pressed=true]{background:#2a6a48;color:#f7f6f1}.soon{padding-bottom:4px}.soon h2{margin:0 0 2px;font-size:12px;font-weight:650;color:#5e675f;text-transform:uppercase;letter-spacing:.03em}.sug{display:grid;grid-template-columns:1fr auto;column-gap:8px;align-items:center;min-height:36px;border-top:1px solid #e3dfd4}.sug p{margin:0}.sug .detail{display:block;color:#5e675f;font-size:12px}.sug-actions{display:flex;gap:4px}.sug-actions button,.undo button,.add button,.join button,.sheet .save{border:0;background:#2a6a48;color:#f7f6f1;border-radius:8px;height:28px;padding:0 8px;font-size:13px}.sug-actions .ghost,.undo button{background:transparent;color:#2a6a48}.list{flex:1;overflow:auto;padding:0 12px 8px}.row{display:flex;align-items:center;gap:8px;min-height:34px;border-bottom:1px solid #e3dfd4}.row .buy{display:flex;align-items:center;gap:8px;flex:1;min-width:0;min-height:34px;padding:0;border:0;background:transparent;text-align:left}.row .buy:active{background:#e9e6dc}.row .drop{flex:none;border:0;background:transparent;color:#5e675f;font-size:13px;padding:4px 0}.box{width:14px;height:14px;flex:none;border:1.5px solid #8a9186;border-radius:3px}.row .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .where{color:#5e675f;font-size:12px}.empty{color:#5e675f;margin:10px 0}.note{color:#5e675f;font-size:13px;margin:4px 0}.leave{margin-top:12px}.add,.undo{border-top:1px solid #e3dfd4;background:#f3f1eb;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.add form,.undo{display:flex;gap:8px;align-items:center}.add{padding-top:8px}.add input,.join input,.add select{height:36px;border:1px solid #d5d0c4;border-radius:8px;background:#fff;font-size:16px}.add input,.join input{flex:1;min-width:0;padding:0 10px}.add select{padding:0 4px;max-width:6.6rem}.add select:disabled{background:#e7e4db;color:#5e675f}.add button{height:36px}.matches{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 0}.undo{padding-top:6px;font-size:14px}.join{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:24px;max-width:420px;margin:0 auto}.join h1{margin:0;font-size:22px}.join p{margin:0;color:#5e675f}.join form{display:flex;flex-direction:column;gap:8px}.join button{height:36px}:focus-visible{outline:2px solid #2a6a48;outline-offset:2px}dialog.sheet{border:0;width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);margin:auto;padding:12px;background:#f3f1eb;color:inherit;border-radius:12px}dialog.sheet::backdrop{background:#1c243066}.sheet-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.sheet-head h2{margin:0;font-size:16px}.sheet .range{margin:4px 0 8px;color:#5e675f;font-size:13px}.sheet-body{overflow:auto;max-height:calc(100dvh - 180px)}.week-row,.receipt-top{display:flex;align-items:baseline;gap:8px;min-height:32px}.week-row{border-bottom:1px solid #e3dfd4}.week-row .name,.receipt-top .name{flex:1;min-width:0}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.sheet .total{display:flex;justify-content:space-between;margin:8px 0 0;font-weight:650}.receipt-line{padding:6px 0;border-bottom:1px solid #e3dfd4}.receipt-line select{width:100%;height:36px;margin-top:4px;border:1px solid #d5d0c4;border-radius:8px;background:#fff;font-size:16px}.keyword{display:flex;align-items:center;gap:8px;margin-top:4px}.keyword input[type=text]{flex:1;min-width:0;height:36px;border:1px solid #d5d0c4;border-radius:8px;background:#fff;font-size:16px;padding:0 8px}.keyword label{display:flex;align-items:center;gap:4px;color:#5e675f;font-size:13px;white-space:nowrap}dialog.sheet .save{width:100%;margin-top:10px;height:36px}
