:root{--color-bg:#f4f6f7;--color-surface:#fff;--color-surface-2:#eef1f2;--color-border:#e1e6e8;--color-text:#15201f;--color-text-muted:#5c6b6c;--color-text-faint:#8a9798;--color-accent:#0f766e;--color-accent-strong:#0b5c55;--color-accent-contrast:#fff;--color-accent-soft:#0f766e1a;--color-danger:#b3261e;--color-danger-soft:#b3261e1a;--color-backdrop:#0f171766;--color-shadow:#141e1e1f;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.25rem;--radius-full:999px;--touch-min:44px;--content-max:32rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-sheet:transform .28s cubic-bezier(.32, .72, 0, 1)}@media (prefers-color-scheme:dark){:root{--color-bg:#10171a;--color-surface:#1a2326;--color-surface-2:#212c2f;--color-border:#2a3639;--color-text:#eef3f2;--color-text-muted:#a3b3b4;--color-text-faint:#728485;--color-accent:#2dd4bf;--color-accent-strong:#5eead4;--color-accent-contrast:#052e2a;--color-accent-soft:#2dd4bf24;--color-danger:#f2918a;--color-danger-soft:#f2918a24;--color-backdrop:#0000008c;--color-shadow:#0006}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:16px;line-height:1.45}#root{min-height:100vh}button,input,select{color:inherit;font-family:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{max-width:var(--content-max);flex-direction:column;min-height:100vh;margin-inline:auto;padding-inline:1rem;display:flex}.app-header{z-index:5;padding-block:var(--space-4);background:var(--color-bg);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:700}.menu-wrap{position:relative}.menu-button{align-items:center;gap:var(--space-1);min-height:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-size:.95rem;font-weight:600;display:inline-flex}.menu-popover{right:0;top:calc(100% + var(--space-2));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px var(--color-shadow);z-index:10;min-width:10rem;position:absolute;overflow:hidden}.menu-popover button{text-align:left;width:100%;padding:var(--space-3) var(--space-4);min-height:var(--touch-min);cursor:pointer;background:0 0;border:none;font-size:.95rem;display:block}.menu-popover button:hover{background:var(--color-surface-2)}.app-main{padding-bottom:calc(var(--space-8) + env(safe-area-inset-bottom));flex:1}.banner-error{background:var(--color-danger-soft);color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:.9rem}.app-loading{min-height:60vh;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.balance-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);margin-bottom:var(--space-5);box-shadow:0 1px 2px var(--color-shadow);text-align:center}.balance-card .all-settled{color:var(--color-text-muted);padding-block:var(--space-4);font-size:1.1rem;font-weight:600}.balance-row{align-items:center;gap:var(--space-2);padding-block:var(--space-3);flex-direction:column;display:flex}.balance-row+.balance-row{border-top:1px solid var(--color-border)}.balance-label{color:var(--color-text-muted);font-size:.95rem}.balance-amount{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--color-accent-strong);font-size:2.25rem;font-weight:700}.settle-button{margin-top:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-5);border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;font-size:.95rem;font-weight:600}.settle-button:active{opacity:.85}.feed-month{letter-spacing:.08em;color:var(--color-text-faint);text-transform:uppercase;margin:var(--space-5) 0 var(--space-2);font-size:.75rem;font-weight:700}.feed-group{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 1px 2px var(--color-shadow);overflow:hidden}.feed-row{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:4rem;padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--color-border);text-align:left;cursor:pointer;color:inherit;background:0 0;display:flex}.feed-group .feed-row:last-child{border-bottom:none}.feed-row.feed-row-static{cursor:default}.feed-row-main{flex-direction:column;flex:1;align-items:flex-start;gap:.15rem;min-width:0;display:flex}.feed-row-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.feed-row-subtitle{color:var(--color-text-muted);font-size:.85rem}.feed-row-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.05rem;font-weight:700}.feed-row-settlement .feed-row-title{color:var(--color-accent-strong)}.feed-row-delete{min-width:var(--touch-min);min-height:var(--touch-min);color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;font-size:1.1rem}.feed-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-8) var(--space-4);font-size:.95rem}.fab{right:max(1.25rem, calc((100vw - var(--content-max)) / 2 + 1.25rem));bottom:max(1.25rem, env(safe-area-inset-bottom));border-radius:var(--radius-full);background:var(--color-accent);width:3.5rem;height:3.5rem;color:var(--color-accent-contrast);box-shadow:0 8px 24px var(--color-shadow);cursor:pointer;z-index:6;border:none;font-size:1.75rem;line-height:1;position:fixed}.fab:active{opacity:.9}.login-screen{min-height:100vh;padding:var(--space-5);justify-content:center;align-items:center;display:flex}.login-card{text-align:center;width:100%;max-width:22rem}.login-card h1{margin:0 0 var(--space-1);letter-spacing:-.01em;font-size:1.75rem}.login-tagline{color:var(--color-text-muted);margin:0 0 var(--space-6);font-size:.95rem}.login-form{gap:var(--space-3);flex-direction:column;display:flex}.field{gap:var(--space-1);text-align:left;flex-direction:column;display:flex}.field label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}input[type=text],input[type=password],input[type=date],select{min-height:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);width:100%;font-size:16px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.checkbox-row{align-items:center;gap:var(--space-2);min-height:var(--touch-min);display:flex}.checkbox-row input[type=checkbox]{width:1.25rem;height:1.25rem}.primary-button{min-height:var(--touch-min);border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-accent-contrast);cursor:pointer;border:none;font-size:1rem;font-weight:600}.primary-button:disabled{opacity:.6;cursor:default}.secondary-button{min-height:var(--touch-min);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:1rem;font-weight:600}.danger-button{min-height:var(--touch-min);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;background:0 0;font-size:.95rem;font-weight:600}.form-error{color:var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:.9rem}.amount-preview{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.9rem}.participants-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.participants-list .checkbox-row{flex:1 1 0;min-width:8rem}.sentence-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:1rem;display:flex}.sentence-row select{width:auto;min-width:6.5rem}.sheet-actions{gap:var(--space-3);margin-top:var(--space-2);display:flex}.sheet-actions>*{flex:1}.backdrop{background:var(--color-backdrop);z-index:20;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--content-max);background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:90vh;padding:var(--space-5);padding-bottom:max(1rem, env(safe-area-inset-bottom));gap:var(--space-4);transition:var(--transition-sheet);flex-direction:column;display:flex;overflow-y:auto;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.sheet{transition:none}}.sheet-header{justify-content:space-between;align-items:center;display:flex}.sheet-header h2{margin:0;font-size:1.15rem}.icon-button{min-width:var(--touch-min);min-height:var(--touch-min);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:1.1rem}svg{flex-shrink:0;display:block}.danger-button,.menu-popover button{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.danger-button{padding-inline:var(--space-4)}.fab{place-items:center;display:grid}.balance-card-settled{align-items:center;gap:var(--space-2);color:var(--color-accent);flex-direction:column;display:flex}.feed-empty{align-items:center;gap:var(--space-3);color:var(--color-text-faint);flex-direction:column;display:flex}.feed-row-avatar{border-radius:var(--radius-full);background:var(--color-accent-soft);width:2.5rem;height:2.5rem;color:var(--color-accent);flex-shrink:0;place-items:center;display:grid}.feed-row-avatar[data-person=teal]{--color-accent:var(--accent-teal);--color-accent-soft:var(--accent-teal-soft)}.feed-row-avatar[data-person=blue]{--color-accent:var(--accent-blue);--color-accent-soft:var(--accent-blue-soft)}.feed-row-avatar[data-person=green]{--color-accent:var(--accent-green);--color-accent-soft:var(--accent-green-soft)}.feed-row-avatar[data-person=violet]{--color-accent:var(--accent-violet);--color-accent-soft:var(--accent-violet-soft)}.feed-row-avatar[data-person=pink]{--color-accent:var(--accent-pink);--color-accent-soft:var(--accent-pink-soft)}.feed-row-avatar[data-person=amber]{--color-accent:var(--accent-amber);--color-accent-soft:var(--accent-amber-soft)}.feed-row-date{color:var(--color-text-faint);font-variant-numeric:tabular-nums;font-size:.75rem}.sheet-form{gap:var(--space-4);flex-direction:column;display:flex}.category-field{border:none;margin:0;padding:0}.category-field legend{margin-bottom:var(--space-2);color:var(--color-text-muted);padding:0;font-size:.85rem;font-weight:600}.category-grid{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.category-chip{justify-content:center;align-items:center;gap:var(--space-1);min-height:4.25rem;padding:var(--space-2) var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);text-align:center;cursor:pointer;flex-direction:column;font-family:inherit;font-size:.7rem;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,color .15s;display:flex}.category-chip span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.category-chip:hover{border-color:var(--color-accent)}.category-chip-selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}@media (prefers-reduced-motion:reduce){.category-chip{transition:none}}:root{--accent-teal:#0f766e;--accent-teal-strong:#0b5c55;--accent-teal-contrast:#fff;--accent-teal-soft:#0f766e1a;--accent-blue:#1d4ed8;--accent-blue-strong:#1739a8;--accent-blue-contrast:#fff;--accent-blue-soft:#1d4ed81a;--accent-green:#15803d;--accent-green-strong:#106430;--accent-green-contrast:#fff;--accent-green-soft:#15803d1a;--accent-violet:#6d28d9;--accent-violet-strong:#571fae;--accent-violet-contrast:#fff;--accent-violet-soft:#6d28d91a;--accent-pink:#be185d;--accent-pink-strong:#9b144c;--accent-pink-contrast:#fff;--accent-pink-soft:#be185d1a;--accent-amber:#a16207;--accent-amber-strong:#854d05;--accent-amber-contrast:#fff;--accent-amber-soft:#a162071f}@media (prefers-color-scheme:dark){:root{--accent-teal:#2dd4bf;--accent-teal-strong:#5eead4;--accent-teal-contrast:#052e2a;--accent-teal-soft:#2dd4bf24;--accent-blue:#60a5fa;--accent-blue-strong:#93c5fd;--accent-blue-contrast:#0a1e3d;--accent-blue-soft:#60a5fa24;--accent-green:#4ade80;--accent-green-strong:#86efac;--accent-green-contrast:#052e16;--accent-green-soft:#4ade8024;--accent-violet:#a78bfa;--accent-violet-strong:#c4b5fd;--accent-violet-contrast:#1e1038;--accent-violet-soft:#a78bfa29;--accent-pink:#f472b6;--accent-pink-strong:#f9a8d4;--accent-pink-contrast:#3b0724;--accent-pink-soft:#f472b629;--accent-amber:#fbbf24;--accent-amber-strong:#fcd34d;--accent-amber-contrast:#3a2606;--accent-amber-soft:#fbbf2429}}:root[data-accent=teal]{--color-accent:var(--accent-teal);--color-accent-strong:var(--accent-teal-strong);--color-accent-contrast:var(--accent-teal-contrast);--color-accent-soft:var(--accent-teal-soft)}:root[data-accent=blue]{--color-accent:var(--accent-blue);--color-accent-strong:var(--accent-blue-strong);--color-accent-contrast:var(--accent-blue-contrast);--color-accent-soft:var(--accent-blue-soft)}:root[data-accent=green]{--color-accent:var(--accent-green);--color-accent-strong:var(--accent-green-strong);--color-accent-contrast:var(--accent-green-contrast);--color-accent-soft:var(--accent-green-soft)}:root[data-accent=violet]{--color-accent:var(--accent-violet);--color-accent-strong:var(--accent-violet-strong);--color-accent-contrast:var(--accent-violet-contrast);--color-accent-soft:var(--accent-violet-soft)}:root[data-accent=pink]{--color-accent:var(--accent-pink);--color-accent-strong:var(--accent-pink-strong);--color-accent-contrast:var(--accent-pink-contrast);--color-accent-soft:var(--accent-pink-soft)}:root[data-accent=amber]{--color-accent:var(--accent-amber);--color-accent-strong:var(--accent-amber-strong);--color-accent-contrast:var(--accent-amber-contrast);--color-accent-soft:var(--accent-amber-soft)}.person-name[data-person=teal]{color:var(--accent-teal)}.person-name[data-person=blue]{color:var(--accent-blue)}.person-name[data-person=green]{color:var(--accent-green)}.person-name[data-person=violet]{color:var(--accent-violet)}.person-name[data-person=pink]{color:var(--accent-pink)}.person-name[data-person=amber]{color:var(--accent-amber)}.checkbox-row[data-person=teal]{--color-accent:var(--accent-teal);--color-accent-soft:var(--accent-teal-soft)}.checkbox-row[data-person=blue]{--color-accent:var(--accent-blue);--color-accent-soft:var(--accent-blue-soft)}.checkbox-row[data-person=green]{--color-accent:var(--accent-green);--color-accent-soft:var(--accent-green-soft)}.checkbox-row[data-person=violet]{--color-accent:var(--accent-violet);--color-accent-soft:var(--accent-violet-soft)}.checkbox-row[data-person=pink]{--color-accent:var(--accent-pink);--color-accent-soft:var(--accent-pink-soft)}.checkbox-row[data-person=amber]{--color-accent:var(--accent-amber);--color-accent-soft:var(--accent-amber-soft)}.accent-picker{padding:var(--space-2) var(--space-3) var(--space-3);border-top:1px solid var(--color-border)}.accent-picker-label{margin-bottom:var(--space-2);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-faint);font-size:.75rem;font-weight:600;display:block}.accent-swatches{gap:var(--space-2);display:flex}.menu-popover .accent-swatch{border-radius:var(--radius-full);background:var(--swatch);cursor:pointer;outline-offset:2px;border:2px solid #0000;width:1.75rem;height:1.75rem;min-height:0;padding:0;display:block}.menu-popover .accent-swatch:hover{background:var(--swatch);transform:scale(1.1)}.menu-popover .accent-swatch[aria-pressed=true]{outline:2px solid var(--color-text);outline-offset:2px}@media (prefers-reduced-motion:reduce){.menu-popover .accent-swatch:hover{transform:none}}.checkbox-row{align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;font-weight:500;transition:background .15s,border-color .15s;display:flex}.checkbox-row:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.checkbox-row input[type=checkbox]{appearance:none;border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:.4375rem;flex-shrink:0;width:1.375rem;height:1.375rem;margin:0;transition:background .15s,border-color .15s}.checkbox-row input[type=checkbox]:checked{border-color:var(--color-accent);background:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:80%}@media (prefers-reduced-motion:reduce){.checkbox-row,.checkbox-row input[type=checkbox]{transition:none}}@media (prefers-color-scheme:dark){.checkbox-row input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310171a' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}}.app-title{flex-direction:column;gap:.125rem;display:flex}.app-subtitle{letter-spacing:.01em;color:var(--color-text-faint);margin:0;font-size:.75rem;font-weight:500}.password-field{display:flex;position:relative}.password-field input{width:100%;padding-right:3rem}.password-reveal{width:3rem;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;place-items:center;padding:0;display:grid;position:absolute;top:0;bottom:0;right:0}.password-reveal:hover,.password-reveal[aria-pressed=true]{color:var(--color-accent)}.person-name{font-weight:600}
