:root{color:#1a1a2e;--primary:#1a1a2e;--accent:#4f46e5;--danger:#dc2626;--danger-bg:#fee2e2;--success:#16a34a;--success-bg:#dcfce7;--muted:#6b7280;--border:#e5e7eb;--surface:#fff;--safe-bottom:env(safe-area-inset-bottom,0px);background:#f5f6f8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.4}*{box-sizing:border-box}html,body{-webkit-tap-highlight-color:transparent;background:#f5f6f8;min-height:100%;margin:0}#root{min-height:100dvh}input,textarea,select,button{font:inherit}.app-shell{background:#f5f6f8;flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.app-header h1{margin:0;font-size:.9375rem;font-weight:600}.app-main{padding:.875rem 1rem;padding-bottom:calc(4.5rem + var(--safe-bottom));flex:1}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);width:100%;max-width:480px;padding-bottom:var(--safe-bottom);z-index:100;grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{text-align:center;color:var(--muted);padding:.75rem .5rem;font-size:.8125rem;font-weight:500;text-decoration:none}.bottom-nav a.active{color:var(--accent)}.page,.auth-page{flex-direction:column;gap:.75rem;display:flex}.auth-page{justify-content:center;max-width:480px;min-height:100dvh;margin:0 auto;padding:1rem}.auth-page h1{margin:0;font-size:1.25rem}.page-center{min-height:100dvh;color:var(--muted);place-items:center;font-size:.875rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:.875rem;display:flex}.form{flex-direction:column;gap:.75rem;display:flex}.form label,label{flex-direction:column;gap:.25rem;display:flex}.field-label{color:var(--muted);font-size:.75rem;font-weight:500}.input,.form input,.form select{border:1px solid var(--border);background:var(--surface);width:100%;color:inherit;border-radius:.625rem;padding:.625rem .75rem;font-size:.9375rem}.input:focus,.form input:focus,.form select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}button{cursor:pointer;background:var(--primary);color:#fff;touch-action:manipulation;border:none;border-radius:.625rem;padding:.75rem 1rem;font-size:.9375rem;font-weight:600}button:disabled{opacity:.4;cursor:not-allowed}.link-btn,.text-btn{color:var(--accent);background:0 0;padding:0;font-size:.8125rem;font-weight:500}.btn-sm{flex-shrink:0;padding:.5rem .75rem;font-size:.8125rem}.btn-ghost{color:var(--muted);background:#f3f4f6}.grid-2{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.btn{min-height:2.75rem}.btn-expense{background:var(--danger-bg);color:var(--danger)}.btn-income{background:var(--success-bg);color:var(--success)}.error{color:var(--danger);margin:0;font-size:.8125rem}.success{color:var(--success);margin:0;font-size:.8125rem}.hint{color:var(--muted);margin:0;font-size:.75rem}.balance-label{text-align:center;letter-spacing:-.02em;color:var(--primary);margin:.25rem 0 0;font-size:1.75rem;font-weight:700}.inline-form{align-items:center;gap:.375rem;display:flex}.tags-section{flex-direction:column;gap:.375rem;display:flex}.tags-row{align-items:center;gap:.375rem;display:flex}.tags{flex-wrap:wrap;flex:1;gap:.375rem;min-width:0;display:flex}.tag{color:#374151;background:#f3f4f6;border-radius:999px;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.tag.active{color:#4338ca;background:#e0e7ff}.tag-add,.wallet-tab-add{width:1.75rem;height:1.75rem;color:var(--muted);background:#f3f4f6;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.125rem;font-weight:500;line-height:1;display:inline-flex}.tag-add:hover,.wallet-tab-add:hover{color:var(--accent);background:#e0e7ff}.filter-tabs,.wallet-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.375rem;display:flex;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.wallet-tabs::-webkit-scrollbar{display:none}.filter-tabs button,.wallet-tabs button{background:var(--surface);color:var(--muted);border:1px solid var(--border);white-space:nowrap;flex-shrink:0;padding:.5rem .75rem;font-size:.8125rem;font-weight:600}.filter-tabs button.active,.wallet-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.report-list{flex-direction:column;gap:.5rem;display:flex}.report-top{justify-content:space-between;align-items:center;display:flex}.report-row p{margin:0;font-size:.8125rem}.amount.income{color:var(--success);font-size:1rem;font-weight:700}.amount.expense{color:var(--danger);font-size:1rem;font-weight:700}
