@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap";:root{--paper: #f7f1e8;--paper-strong: #fffaf3;--ink: #1d1710;--ink-soft: #5f5345;--line: #d7c6b1;--accent: #c14e2f;--accent-soft: #f8e2d9;--ok: #1b6f4b;--ok-soft: #ddefe4;--warn: #9a2a24;--warn-soft: #f7deda;--pending: #7f5c22;--pending-soft: #f5ebd4;--shadow: 0 18px 40px rgb(73 48 24 / 16%);--radius-xl: 24px;--radius-lg: 18px;--radius-sm: 10px}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Manrope,Segoe UI,sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 10%,#fffdf7 0%,var(--paper) 48%,#f3ebde 100%)}.app-shell{position:relative;max-width:880px;margin:0 auto;padding:1.25rem 1rem 2rem}.app-bg{position:fixed;inset:0;background-image:linear-gradient(135deg,rgb(255 255 255 / 45%),transparent 40%),repeating-linear-gradient(0deg,transparent,transparent 8px,rgb(77 43 24 / 2%) 8px,rgb(77 43 24 / 2%) 9px);pointer-events:none;z-index:-1}.topbar{display:flex;flex-direction:column;gap:1.1rem;padding:1.2rem;border:1px solid var(--line);border-radius:var(--radius-xl);background:linear-gradient(145deg,var(--paper-strong),#f3e7d7);box-shadow:var(--shadow)}.brand-kicker{margin:0;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:.72rem}.brand-title{margin:.25rem 0 0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,8vw,3rem);line-height:1}.brand-subtitle{margin:.5rem 0 0;color:var(--ink-soft)}.main-nav{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.nav-link{display:inline-flex;align-items:center;justify-content:center;padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:#fff6;font-weight:600;transition:transform .12s ease,background-color .12s ease}.nav-link:hover{transform:translateY(-1px)}.nav-link.active{border-color:var(--accent);color:#fff;background:var(--accent)}.nav-button{border:1px solid var(--line);border-radius:999px;background:#fff9;color:var(--ink);font:inherit;font-weight:600;padding:.55rem .9rem;cursor:pointer}.nav-button:disabled{opacity:.65;cursor:progress}.session-chip{display:inline-flex;align-items:center;padding:.3rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);font-size:.8rem}.page-wrap{margin-top:1.1rem}.page{display:grid;gap:1rem;animation:fade-up .42s ease both}.panel,.quick-add{border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(160deg,var(--paper-strong),#f8efe3);box-shadow:var(--shadow);padding:1rem}.quick-add-form{display:grid;gap:.8rem}.quick-add-label{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:var(--accent)}.quick-add-input,.filter-field input{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;padding:.75rem .85rem;background:#ffffffbf;color:var(--ink)}.quick-add-input:focus,.filter-field input:focus{outline:2px solid var(--accent);outline-offset:1px}.quick-add-button{width:fit-content;border:0;border-radius:999px;background:var(--ink);color:#fff;font:inherit;font-weight:700;padding:.62rem 1rem;cursor:pointer}.quick-add-link{display:inline-flex;align-items:center;justify-content:center;width:fit-content;border:0;border-radius:999px;background:var(--ink);color:#fff;text-decoration:none;font:inherit;font-weight:700;padding:.62rem 1rem}.quick-add-button:disabled{opacity:.65;cursor:progress}.quick-add-hint,.feedback{margin:.75rem 0 0;color:var(--ink-soft);font-size:.92rem}.feedback.error{color:var(--warn)}.feedback.success{color:var(--ok)}.panel-header{display:flex;align-items:flex-end;justify-content:space-between;gap:.6rem;margin-bottom:.9rem}.panel-header h2{margin:.2rem 0 0;font-family:Fraunces,Georgia,serif;line-height:1.1}.panel-kicker{margin:0;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--ink-soft)}.panel-count{margin:0;font-size:.85rem;color:var(--ink-soft)}.filters{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1rem}.filter-field{display:grid;gap:.35rem;font-size:.85rem;color:var(--ink-soft)}.expense-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.expense-item{display:flex;justify-content:space-between;gap:.9rem;border-radius:var(--radius-sm);padding:.75rem .85rem;border:1px solid var(--line);background:#ffffffa3}.expense-main{min-width:0}.expense-title{margin:0;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:.35rem 0 0;color:var(--ink-soft);font-size:.82rem}.expense-category{display:inline-flex;padding:.2rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.expense-side{text-align:right}.expense-amount{margin:0;font-family:IBM Plex Mono,monospace;font-weight:500;font-size:.87rem}.status-copy{margin:.34rem 0 0;display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;padding:.2rem .44rem;border-radius:999px}.status-copy.pending{color:var(--pending);background:var(--pending-soft)}.status-copy.resolved{color:var(--ok);background:var(--ok-soft)}.status-copy.failed{color:var(--warn);background:var(--warn-soft)}.spinner{width:.65rem;height:.65rem;border-radius:999px;border:2px solid rgb(127 92 34 / 30%);border-top-color:var(--pending);animation:spin .7s linear infinite}.empty-state{border:1px dashed var(--line);border-radius:var(--radius-sm);background:#ffffff73;padding:1rem}.empty-state h3{margin:0;font-family:Fraunces,Georgia,serif}.empty-state p{margin:.4rem 0 0;color:var(--ink-soft)}.login-panel h2{margin-bottom:.5rem}.login-form{display:grid;gap:.8rem;margin-top:1rem}.sent-panel{border-color:#1b6f4b59;background:linear-gradient(160deg,#f7fcf9,#eef8f2)}.sent-panel-actions{margin-top:.8rem}.auth-error-panel p{color:var(--ink-soft)}.auth-error-actions{margin-top:1rem}@media(min-width:768px){.app-shell{padding-top:1.5rem}.topbar{display:grid;grid-template-columns:1fr auto;align-items:end}.panel,.quick-add{padding:1.2rem}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
