:root{--ink:#0f1c1a;--ink-soft:#2a3d39;--muted:#5c736d;--line:#0f1c1a1f;--surface:#ffffff8c;--surface-strong:#ffffffd1;--accent:#1a6b5c;--accent-soft:#7ec8b4;--danger:#b33a2b;--onetime:#2f5f8a;--fixed:#1a6b5c;--temp:#b07020;--bg0:#d9e6df;--bg1:#eef4f0;--radius:18px;--font:"Manrope", system-ui, sans-serif;--display:"Literata", Georgia, serif;--shadow:0 18px 50px #0f1c1a14;color:var(--ink);font-family:var(--font);background:var(--bg1);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:500;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 600px at 10% -10%, #7ec8b459, transparent 55%), radial-gradient(900px 500px at 100% 0%, #b070201f, transparent 50%), linear-gradient(180deg, var(--bg0), var(--bg1) 40%, #f4f7f5);min-width:320px;color:var(--ink);margin:0}button,input,select,textarea{font:inherit}a{color:var(--accent);text-decoration:none}.app-shell{width:min(720px,100%);margin:0 auto;padding:1.25rem 1rem 3.5rem}.topbar{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.topbar-email{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:.15rem 0 0;overflow:hidden}.icon-btn{border:1px solid var(--line);background:var(--surface-strong);width:2.5rem;height:2.5rem;color:var(--ink);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:inline-flex}.icon-btn:hover{border-color:var(--accent-soft);color:var(--accent)}.brand{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:1.55rem;font-weight:700}.brand span{color:var(--accent)}.muted{color:var(--muted);font-size:.92rem}.stack{flex-direction:column;gap:.85rem;display:flex}.row{align-items:center;gap:.75rem;display:flex}.row.spread{justify-content:space-between}.btn{appearance:none;background:var(--ink);color:#f4faf7;cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.7rem 1.15rem;font-weight:600;transition:transform .15s,background .15s,opacity .15s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.secondary{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost{color:var(--muted);background:0 0;padding-inline:.5rem}.btn.danger{background:var(--danger)}.btn.accent{background:var(--accent)}.btn.small{padding:.45rem .85rem;font-size:.88rem}.field{flex-direction:column;gap:.35rem;display:flex}.field label{color:var(--muted);font-size:.82rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface-strong);width:100%;color:var(--ink);border-radius:14px;outline:none;padding:.8rem .95rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-soft);box-shadow:0 0 0 3px #1a6b5c1f}.auth-page{place-items:center;min-height:100dvh;padding:1.5rem;display:grid}.auth-panel{background:linear-gradient(160deg, #ffffffb8, #fff6), var(--surface);width:min(420px,100%);box-shadow:var(--shadow);border:1px solid #ffffff80;border-radius:28px;padding:2rem 1.4rem 1.6rem;animation:.45s both rise}.auth-panel h1{font-family:var(--display);letter-spacing:-.03em;margin:0 0 .35rem;font-size:2.1rem}.auth-panel .lead{color:var(--muted);margin:0 0 1.4rem}.error-banner{color:var(--danger);background:#b33a2b1a;border-radius:12px;padding:.75rem .9rem;font-size:.92rem}.bill-list{flex-direction:column;gap:.75rem;display:flex}.bill-item{text-align:left;border:1px solid var(--line);background:var(--surface-strong);border-radius:var(--radius);cursor:pointer;width:100%;color:inherit;padding:1rem 1.1rem;transition:border-color .15s,transform .15s;animation:.4s both rise;display:block}.bill-item-row{cursor:grab;align-items:stretch;gap:.35rem;padding:.55rem .55rem .55rem .35rem;display:flex}.bill-item-row.dragging{opacity:.65;border-color:var(--accent-soft);cursor:grabbing}.bill-item-main{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;padding:.45rem .35rem}.drag-handle{color:var(--muted);letter-spacing:-.15em;cursor:grab;touch-action:none;background:0 0;border:0;align-self:center;padding:.4rem .35rem;font-size:1rem}.bill-item-actions{flex-direction:column;flex-shrink:0;justify-content:center;gap:.1rem;display:flex}.bill-item:hover{border-color:var(--accent-soft);transform:translateY(-1px)}.bill-item h3{font-size:1.15rem;font-family:var(--display);margin:0}.swipe-month-area{touch-action:pan-y;min-height:40vh}.swipe-hint{text-align:center;margin:-.35rem 0 .85rem;font-size:.78rem}.badge{color:var(--accent);background:#1a6b5c1f;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.month-nav{justify-content:space-between;align-items:center;gap:.75rem;margin:.5rem 0 1rem;display:flex}.month-nav .label{font-family:var(--display);font-size:1.35rem;font-weight:700}.total-block{color:#eef7f3;box-shadow:var(--shadow);background:linear-gradient(135deg,#0f1c1a,#1a3d36);border-radius:22px;margin-bottom:1rem;padding:1.1rem 1.2rem;animation:.45s both rise}.total-block .label{opacity:.7;font-size:.85rem}.total-block .value{font-family:var(--display);letter-spacing:-.03em;margin-top:.2rem;font-size:2rem;font-weight:700}.tx-list{flex-direction:column;gap:.7rem;display:flex}.tx-item{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-strong);padding:.95rem 1rem .95rem 1.05rem;transition:opacity .2s,transform .15s;animation:.35s both rise;position:relative;overflow:hidden}.tx-item:before{content:"";background:var(--type-color,var(--muted));width:5px;position:absolute;inset:0 auto 0 0}.tx-item.type-onetime{--type-color:var(--onetime)}.tx-item.type-fixed{--type-color:var(--fixed)}.tx-item.type-temp{--type-color:var(--temp)}.tx-item.inactive{opacity:.55}.tx-item .title{margin:0;font-size:1.02rem;font-weight:700}.tx-item .amount{font-family:var(--display);font-size:1.15rem;font-weight:700}.type-chip{letter-spacing:.02em;text-transform:uppercase;color:var(--type-color,var(--muted));align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;display:inline-flex}.type-chip .dot{background:currentColor;border-radius:50%;width:.45rem;height:.45rem}.switch{flex-shrink:0;width:46px;height:28px;position:relative}.switch input{opacity:0;width:0;height:0}.switch .slider{cursor:pointer;background:#0f1c1a2e;border-radius:999px;transition:background .2s;position:absolute;inset:0}.switch .slider:before{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #00000026}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(18px)}.switch input:disabled+.slider{opacity:.45;cursor:not-allowed}.modal-backdrop{z-index:40;background:#0f1c1a73;place-items:end center;padding:0;animation:.2s both fade;display:grid;position:fixed;inset:0}.modal{width:min(560px,100%);max-height:min(92dvh,820px);box-shadow:var(--shadow);background:#f4f7f5;border-radius:24px 24px 0 0;padding:1.25rem 1.15rem 1.6rem;animation:.28s both sheet;overflow:auto}@media (width>=640px){.modal-backdrop{place-items:center;padding:1rem}.modal{border-radius:24px}}.modal h2{font-family:var(--display);margin:0 0 1rem;font-size:1.35rem}.actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.segmented{background:#0f1c1a0f;border-radius:14px;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.3rem;display:grid}.segmented button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:11px;padding:.55rem .35rem;font-size:.82rem;font-weight:700}.segmented button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px #0f1c1a14}.share-list{flex-direction:column;gap:.55rem;display:flex}.share-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.empty{text-align:center;color:var(--muted);padding:2.5rem 1rem}.fab-row{flex-wrap:wrap;gap:.6rem;margin:1rem 0;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}.offline-banner{z-index:30;color:#f6e7c8;text-align:center;background:#3d2a12;margin:-1.25rem -1rem 1rem;padding:.7rem 1rem;font-size:.88rem;font-weight:600;position:sticky;top:0}.info-banner{color:var(--accent);background:#1a6b5c1f;border-radius:12px;padding:.75rem .9rem;font-size:.92rem}.update-banner{background:#2f5f8a1a;border:1px solid #2f5f8a40;border-radius:14px;padding:.9rem}.update-toast{z-index:35;color:#e8f6f1;background:#14352e;justify-content:space-between;align-items:center;gap:.75rem;margin:-1.25rem -1rem 1rem;padding:.65rem 1rem;font-size:.9rem;font-weight:600;display:flex;position:sticky;top:0}.settings-card{border:1px solid var(--line);background:var(--surface-strong);border-radius:var(--radius);padding:1.1rem 1.15rem}
