*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f3ef;--surface:#ffffff;--surface-soft:#faf9f6;--border:rgba(0,0,0,0.12);--border-strong:rgba(0,0,0,0.22);--text:#171717;--muted:#6f6b64;--faint:#9b968e;--danger:#b91c1c;--danger-bg:#fff5f5;--refund:#0f766e;--refund-bg:#ecfdf5;--black:#171717;--radius-md:8px;--radius-lg:12px}html{scroll-behavior:smooth}body{min-height:100vh;padding:2rem 1rem;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}.container{max-width:900px;margin:0 auto}header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}header h1{display:flex;align-items:center;gap:10px;font-size:28px;font-weight:700;letter-spacing:0}header h1 i{color:var(--muted);font-size:30px}header p{max-width:580px;margin-top:4px;color:var(--muted);font-size:14px;line-height:1.45}.auth-screen{display:grid;min-height:calc(100vh - 4rem);place-items:center}.login-panel{width:min(100%,420px);padding:28px;border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center}.login-panel>i{margin-bottom:12px;color:var(--muted);font-size:38px}.login-panel h1{margin-bottom:8px;font-size:28px;font-weight:700}.login-panel p{margin-bottom:20px;color:var(--muted);font-size:14px;line-height:1.45}.card{margin-bottom:1rem;padding:20px;border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.section-title{margin-bottom:12px;color:var(--faint);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-heading .section-title{margin-bottom:0}.btn{display:inline-flex;height:40px;align-items:center;justify-content:center;gap:6px;padding:0 16px;border:.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;font-size:13px;white-space:nowrap;transition:background .15s,transform .1s,border-color .15s}.btn:hover{border-color:var(--border-strong);background:#f0efec}.btn:active{transform:scale(.98)}.btn-primary{border-color:var(--black);background:var(--black);color:#ffffff}.btn-primary:hover{background:#333333}.btn-danger{border-color:rgba(185,28,28,.28);color:var(--danger)}.btn-danger:hover{background:var(--danger-bg)}.btn-large{height:44px;padding:0 24px;font-size:15px;font-weight:600}.btn-small{height:30px;padding:0 10px;font-size:12px}.summary-card{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:10px;gap:10px;padding:14px}.summary-item{display:grid;grid-gap:5px;gap:5px;min-width:0;padding:14px;border:.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}.summary-item span{color:var(--muted);font-size:12px;font-weight:600}.summary-item strong{font-size:clamp(18px,2vw,24px);overflow-wrap:anywhere}.summary-item.reimbursement strong{color:var(--refund)}.summary-item.total{background:#f1f5f9}.summary-item.rounding{cursor:text}.summary-input{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:clamp(18px,2vw,24px);font-weight:800}.summary-input input{width:100%;min-width:0;border:none;outline:none;background:transparent;color:var(--text);font-size:inherit;font-weight:inherit}.summary-item.share{border-color:var(--black);background:var(--black);color:#ffffff}.summary-item.share span{color:rgba(255,255,255,.68)}.add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center}.add-row input[type=number],.add-row input[type=text]{height:40px;min-width:0;padding:0 14px;border:.5px solid var(--border);border-radius:var(--radius-md);outline:none;background:#fafafa;color:var(--text);font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.add-row input:focus{border-color:var(--border-strong);background:#ffffff;box-shadow:0 0 0 3px rgba(0,0,0,.05)}.reimbursement-toggle,.row-check{display:inline-flex;height:40px;align-items:center;justify-content:center;gap:8px;padding:0 12px;border:.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);color:var(--muted);cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap}.reimbursement-toggle input,.row-check input{width:16px;height:16px;accent-color:var(--refund)}.expense-list{display:flex;flex-direction:column;gap:8px}.expense-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center;padding:10px 12px;border:.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft)}.expense-row.reimbursement-row{border-color:rgba(15,118,110,.28);background:var(--refund-bg)}.expense-main{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px}.expense-title{min-width:0;color:var(--text);font-size:14px;overflow-wrap:anywhere}.amount-field{display:inline-flex;height:36px;flex:0 0 130px;align-items:center;gap:6px;padding:0 10px;border:.5px solid var(--border);border-radius:var(--radius-md);background:#ffffff;color:var(--muted);font-size:13px;font-weight:700}.amount-field input{width:100%;min-width:0;border:none;outline:none;background:transparent;color:var(--text);font-weight:700;text-align:right}.reimbursement-row .amount-field input,.reimbursement-row .amount-field span{color:var(--refund)}.expense-actions{display:flex;align-items:center;gap:6px}.row-check{height:30px;padding:0 10px;font-size:12px}.empty-state{padding:16px 0;color:var(--faint);font-size:13px;text-align:center}.notice{display:grid;grid-gap:6px;gap:6px;margin-bottom:1rem;padding:14px 16px;border:.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:13px}.notice.danger{border-color:#ffcdd2;background:#fff5f5;color:#7b1010}.notice code{overflow-wrap:anywhere;color:var(--text)}.login-error{margin-bottom:12px;color:var(--danger);font-size:13px}@media (max-width:760px){body{padding:1rem}header{flex-direction:column}.summary-card{grid-template-columns:1fr 1fr}.summary-item.share{grid-column:1/-1}.add-row{grid-template-columns:1fr}.expense-row{grid-template-columns:minmax(0,1fr) auto}.expense-actions{justify-content:flex-end}}@media (max-width:460px){.expense-row,.summary-card{grid-template-columns:1fr}.expense-main{align-items:center;flex-direction:row}.amount-field{flex-basis:112px}.expense-actions{display:grid;grid-template-columns:1fr auto}}