:root{--bg: #f4f5f7;--card: #ffffff;--text: #1f2937;--muted: #6b7280;--border: #e5e7eb;--primary: #0f766e;--primary-dark: #115e59;--income: #059669;--expense: #dc2626;--danger: #dc2626;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .08)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .5rem}.muted{color:var(--muted)}.error{color:var(--danger);margin:.5rem 0}.app{max-width:820px;margin:0 auto;padding:0 0 3rem}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--primary);color:#fff}.app-header h1{font-size:1.1rem;margin:0;flex-shrink:0}.app-nav{display:flex;gap:.25rem;margin-left:auto}.app-nav a{color:#d1fae5;text-decoration:none;padding:.35rem .6rem;border-radius:8px;font-size:.9rem}.app-nav a.active{background:#fff3;color:#fff}.app-main{padding:1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin-bottom:1rem}label{display:block;font-size:.85rem;font-weight:600;margin:.6rem 0 .2rem}input,select,textarea{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:#fff;color:var(--text)}button{cursor:pointer;font-size:1rem}button.primary{width:100%;margin-top:1rem;padding:.7rem;background:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:600}button.primary:hover{background:var(--primary-dark)}button.primary:disabled{opacity:.6;cursor:default}.link-button{background:none;border:none;color:#d1fae5;text-decoration:underline;padding:.35rem .4rem}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:360px}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.totals-4{grid-template-columns:repeat(4,1fr)}.tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;text-align:center}.tile-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.tile-value{font-size:1.15rem;font-weight:700;margin-top:.25rem}.value-income{color:var(--income)}.value-expense{color:var(--expense)}.month-pies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;margin-top:.75rem}.month-pies-grid .card{margin-bottom:0}.entry{display:flex;align-items:center;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.entry:last-child{border-bottom:none}.entry .entry-main{flex:1;min-width:0}.entry .entry-title{font-weight:600}.entry .entry-sub{font-size:.8rem;color:var(--muted)}.entry .entry-amount{font-weight:700;white-space:nowrap}.table-wrap{overflow-x:auto;margin:0 -1rem;padding:0 1rem}.entries-table{width:100%;border-collapse:collapse;font-size:.9rem}.entries-table th,.entries-table td{padding:.5rem .6rem;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}.entries-table thead th{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.entries-table td.col-note,.entries-table td.col-description{white-space:normal;min-width:8rem}.entries-table tbody tr:last-child td{border-bottom:none}.entries-table .col-actions{text-align:right;white-space:nowrap;position:sticky;right:0;background:var(--card)}.badge{display:inline-block;font-size:.7rem;padding:.1rem .4rem;border-radius:999px;background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc;margin-left:.35rem}.icon-button{background:none;border:none;color:var(--muted);padding:.25rem .4rem;border-radius:6px}.icon-button:hover{background:var(--bg);color:var(--text)}.icon-button.danger:hover{color:var(--danger)}.row{display:flex;gap:.5rem;align-items:center}.row>*{flex:1}.tabs{display:flex;gap:.25rem;margin-bottom:1rem}.tabs button{flex:1;padding:.5rem;border:1px solid var(--border);background:#fff;border-radius:8px}.tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.picker{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.picker select{width:auto;flex:1}.empty{text-align:center;color:var(--muted);padding:1.5rem 0}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-top:.6rem}.checkbox-row input{width:auto}.checkbox-row label{margin:0}
