:root{--bg: #f4f6fb;--card: #ffffff;--ink: #101828;--muted: #667085;--line: #e5e9f2;--brand: #4f46e5;--brand-soft: #eef0ff;--ok: #0e9f6e;--ok-soft: #e7f8f1;--warn: #d97706;--warn-soft: #fdf3e3;--danger: #dc2626;--radius: 18px;--shadow: 0 10px 30px rgba(16, 24, 40, .07)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input{font-family:inherit;font-size:inherit}.app{max-width:760px;margin:0 auto;padding:18px 16px 90px}.hero{background:linear-gradient(135deg,#1e1b4b,#4338ca 55%,#6366f1);color:#fff;border-radius:24px;padding:22px 20px;box-shadow:0 18px 40px #4338ca47}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#ffffffb3}.hero h1{margin:0;font-size:24px;line-height:1.2;letter-spacing:-.02em}.hero-sub{margin:6px 0 0;font-size:13px;color:#ffffffbf}.hero-badge{background:#ffffff29;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;white-space:nowrap}.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.stat{background:#ffffff1f;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}.stat span{font-size:11px;color:#ffffffbf}.stat strong{font-size:14px;letter-spacing:-.01em;overflow-wrap:anywhere}.tabs{display:flex;gap:6px;background:#fff;border-radius:999px;padding:5px;margin:18px 0 16px;box-shadow:var(--shadow);position:sticky;top:8px;z-index:20}.tab{flex:1;border:none;background:transparent;color:var(--muted);font-weight:600;font-size:13px;padding:10px 6px;border-radius:999px;cursor:pointer;transition:background .18s,color .18s}.tab.active{background:var(--brand);color:#fff;box-shadow:0 6px 14px #4f46e54d}.stack{display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);border:1px solid rgba(229,233,242,.9)}.card-title{margin:0 0 12px;font-size:16px;letter-spacing:-.01em}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 4px 0}.section-head h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.count-pill{font-size:12px;color:var(--muted);background:#eef1f7;border-radius:999px;padding:3px 10px}.empty{text-align:center;color:var(--muted);font-size:14px}.empty p{margin:0 0 12px}.date-head{display:flex;align-items:center;gap:8px}.date-center{flex:1;text-align:center;display:flex;flex-direction:column;gap:2px}.date-center .label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.date-center strong{font-size:16px;text-transform:capitalize}.date-center input[type=date],.month-pick input[type=month]{margin-top:4px;border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:#f8fafc;color:var(--ink);font-size:13px;width:100%;max-width:190px}.ghost-btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;width:40px;height:40px;font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ghost-btn:disabled{opacity:.4;cursor:not-allowed}.ghost-btn.small{width:auto;height:auto;font-size:13px;font-weight:600;padding:8px 14px}.ghost-btn.text{width:auto;height:auto;border:none;color:var(--muted);font-weight:600;padding:8px 10px}.day-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}.day-summary div{display:flex;flex-direction:column;gap:2px;min-width:0}.day-summary span{font-size:11px;color:var(--muted)}.day-summary strong{font-size:14px;overflow-wrap:anywhere}.person-head{display:flex;align-items:center;gap:12px}.avatar{width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center;font-weight:700;font-size:16px}.avatar.grey{background:#eef1f7;color:var(--muted)}.person-id{flex:1;min-width:0;display:flex;flex-direction:column}.person-id strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-id span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-pay{text-align:right;display:flex;flex-direction:column;align-items:flex-end;min-width:0}.person-pay span{font-size:11px;color:var(--muted)}.person-pay strong{font-size:14px;white-space:nowrap}.person.done{border-color:#0e9f6e59}.person.compact{padding:14px}.person.muted{opacity:.72}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#f5f7fb;border-radius:14px;padding:4px;margin:14px 0 0}.seg{border:none;background:transparent;border-radius:10px;padding:9px 4px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .16s}.seg.full.active{background:var(--ok);color:#fff}.seg.half.active{background:var(--warn);color:#fff}.seg.absent.active{background:#64748b;color:#fff}.person-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}.ot{display:flex;flex-direction:column;gap:4px}.ot>span{font-size:11px;color:var(--muted)}.ot small{font-size:11px;color:var(--muted)}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f8fafc}.stepper button{border:none;background:transparent;width:32px;height:32px;font-size:16px;cursor:pointer;color:var(--ink)}.stepper input{width:52px;border:none;background:transparent;text-align:center;font-size:13px;padding:6px 0;color:var(--ink);-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper.disabled{opacity:.5}.stepper button:disabled{cursor:not-allowed}.row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row-actions.right{justify-content:flex-end;margin-top:10px}.status-pill{font-size:12px;font-weight:600;color:var(--muted);background:#f1f4f9;border-radius:999px;padding:5px 12px}.link-btn{border:none;background:transparent;color:var(--brand);font-size:13px;font-weight:600;cursor:pointer;padding:4px 0}.link-btn.danger{color:var(--danger)}.primary-btn{border:none;background:var(--brand);color:#fff;font-weight:600;border-radius:12px;padding:12px 18px;cursor:pointer;font-size:14px;box-shadow:0 8px 18px #4f46e540}.primary-btn.small{padding:9px 14px;font-size:13px;box-shadow:none}.primary-btn.wide{width:100%;margin-top:12px}.primary-btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.form-grid{display:grid;gap:10px}.form-grid label{display:flex;flex-direction:column;gap:4px}.form-grid label span{font-size:12px;color:var(--muted);font-weight:600}.form-grid input{border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#f8fafc;color:var(--ink);outline:none}.form-grid input:focus{border-color:var(--brand);background:#fff}.form-actions{display:flex;align-items:center;gap:8px;margin-top:14px}.error{margin:10px 0 0;color:var(--danger);font-size:13px}.recap-head{display:flex;flex-direction:column;gap:12px}.month-pick{display:flex;flex-direction:column;gap:4px}.month-pick span{font-size:12px;font-weight:600;color:var(--muted)}.month-pick input{max-width:100%!important;width:100%!important}.recap-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;background:#f7f9fd;border-radius:14px;padding:12px}.recap-totals div{display:flex;flex-direction:column;gap:2px;min-width:0}.recap-totals span{font-size:11px;color:var(--muted)}.recap-totals strong{font-size:13px;overflow-wrap:anywhere}.hint{margin:12px 0 0;font-size:12px;color:var(--muted)}.recap-row.paid{border-color:#0e9f6e59;background:linear-gradient(180deg,#fff,#f7fdfa)}.recap-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);flex-wrap:wrap}.paid-info{display:flex;flex-direction:column;gap:2px}.paid-badge{font-size:12px;font-weight:700;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:5px 12px;align-self:flex-start}.paid-date{font-size:11px;color:var(--muted)}.ok{color:var(--ok)}.warn{color:var(--warn)}.list-card{padding:4px 16px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:none}.history-main{display:flex;flex-direction:column;min-width:0}.history-main strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-main span,.history-right span{font-size:11px;color:var(--muted)}.history-right{text-align:right;display:flex;flex-direction:column}.history-right strong{font-size:13px;white-space:nowrap}.foot{text-align:center;font-size:12px;color:var(--muted);margin-top:22px;padding:0 12px}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:18px;width:min(440px,calc(100% - 24px));display:flex;flex-direction:column;gap:8px;z-index:100}.toast{display:flex;align-items:center;gap:10px;background:#101828;color:#fff;border-radius:14px;padding:12px 14px;font-size:13px;box-shadow:0 12px 30px #10182859;animation:pop .22s ease-out}.toast.ok{background:#0b7a55;color:#fff}.toast.info{background:#1f2937}.toast-icon{width:22px;height:22px;flex:0 0 22px;border-radius:999px;background:#fff3;display:grid;place-items:center;font-size:12px;font-weight:700}@keyframes pop{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 640px){.app{padding:26px 20px 100px}.hero h1{font-size:30px}.form-grid{grid-template-columns:1.2fr 1fr 1fr}.recap-head{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:18px}.month-pick input{width:190px!important}.recap-totals{flex:1;max-width:380px}}
