:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{scrollbar-gutter:stable;overflow-y:scroll}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button{color:#fff;cursor:pointer;font:inherit;background:#2563eb;border:0;border-radius:999px;padding:.75rem 1.2rem;font-weight:600}button:hover{background:#1d4ed8}button:focus,button:focus-visible{outline-offset:2px;outline:3px solid #93c5fd}button:disabled{cursor:default;opacity:.7}#app,.app-shell{min-height:100vh}.app-header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 2rem;display:flex}.app-title{font-size:1.25rem;font-weight:700}.app-header-actions{align-items:center;gap:1.5rem;display:flex}.app-nav{gap:1rem;display:flex}.app-nav a,.text-link{color:#2563eb;font-weight:600}.app-user-actions{align-items:center;gap:.75rem;display:flex}.app-user-name{color:#475569;font-size:.9rem;font-weight:600}.logout-button{background:#475569;padding:.45rem .9rem;font-size:.9rem}.logout-button:hover{background:#334155}.app-main{width:min(1180px,100% - 2rem);margin:0 auto;padding:3rem 0}.login-card,.mfa-settings-card,.mfa-verify-card,.password-change-card{width:min(480px,100%);margin:0 auto}.login-form,.mfa-settings-form,.mfa-verify-form,.password-change-form{gap:1.25rem}.mfa-status{color:#475569;margin:0;font-weight:600}.mfa-enabled{color:#047857}.mfa-disabled{color:#b45309}.mfa-setup{gap:1.25rem;display:grid}.mfa-qr-code{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;justify-self:center;width:min(240px,100%);height:auto}.mfa-code-form{gap:1rem;display:grid}.trusted-device-actions{flex-wrap:wrap;gap:.75rem;display:flex}.trusted-device-table{border-collapse:collapse;width:100%}.trusted-device-table th,.trusted-device-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e5e7eb;padding:.75rem}.trusted-device-table th{color:#475569;font-size:.85rem}.current-device-badge{color:#047857;background:#dcfce7;border-radius:999px;margin-left:.5rem;padding:.15rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.hero-section,.page-heading{margin-bottom:2rem}.hero-section h1,.page-heading h1,.status-card h1,.status-card h2{color:#111827;margin:0 0 .75rem}.hero-section p,.page-heading p,.status-card p{line-height:1.7}.eyebrow{color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.8rem;font-weight:700}.status-card{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;gap:1rem;padding:1.5rem;display:grid;box-shadow:0 12px 32px #0f172a14}.hello-result{color:#3730a3;background:#eef2ff;border-radius:.75rem;width:fit-content;margin:0;padding:.75rem 1rem;font-weight:700}.error-message{color:#b91c1c;margin:0}.toolbar{justify-content:flex-end;margin:1.5rem 0;display:flex}.form-grid{grid-template-columns:minmax(220px,1fr) minmax(160px,.5fr) minmax(140px,.4fr) auto;align-items:start;gap:1rem;display:grid}.form-grid-compact{grid-template-columns:minmax(220px,1fr) minmax(140px,.4fr) auto}.field{color:#374151;gap:.4rem;font-weight:600;display:grid}.checkbox-field{color:#374151;align-items:center;gap:.5rem;font-weight:600;display:flex}.checkbox-field input{width:auto;min-height:auto}.empty-message{color:#64748b;margin:0}input,select,textarea{color:#111827;width:100%;min-height:2.75rem;font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:.65rem;padding:.55rem .75rem}input:focus,select:focus,textarea:focus{border-color:#2563eb;outline:3px solid #bfdbfe}.active-cell{border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb}.cell-error{background:#fff7f7;border-color:#dc2626}.cell-error:focus{border-color:#dc2626;outline-color:#fecaca}.form-actions{align-self:end}.field-error{color:#b91c1c;margin-top:.35rem;font-size:.85rem;font-weight:600;display:block}.message{margin:0;font-weight:600}.message.error{color:#b91c1c}.message.success{color:#047857}.category-section{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;margin-top:1.5rem;padding:1.5rem;box-shadow:0 12px 32px #0f172a14}.section-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2{color:#111827;margin:0}.count-badge{color:#1d4ed8;background:#dbeafe;border-radius:999px;align-items:center;width:fit-content;padding:.25rem .65rem;font-size:.85rem;font-weight:700;display:inline-flex}.table-wrap{overflow-x:auto}.category-table{border-collapse:collapse;width:100%}.category-table th,.category-table td{text-align:left;vertical-align:top;border-top:1px solid #e5e7eb;padding:.85rem}.category-table th{color:#475569;background:#f8fafc;font-size:.9rem}.category-table .name-cell{width:auto;min-width:280px}.category-table .type-cell,.category-table .order-cell{width:10rem;min-width:140px}.category-table .action-cell{text-align:right;width:8rem;min-width:8rem}.category-table .action-cell .message{text-align:left}.category-table .action-cell button{white-space:nowrap}.empty-cell{color:#64748b;text-align:center}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.secondary-button{color:#1f2937;background:#e5e7eb}.secondary-button:hover{background:#d1d5db}.danger-button{background:#dc2626}.danger-button:hover{background:#b91c1c}.month-toolbar{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.month-picker{color:#374151;gap:.4rem;min-width:180px;font-weight:600;display:grid}.summary-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:1rem;display:grid}.summary-card{background:#f8fafc;border-radius:.9rem;gap:.35rem;padding:1rem;display:grid}.summary-card span{color:#64748b;font-size:.9rem;font-weight:700}.summary-card strong{color:#111827;font-size:1.5rem}.summary-card.expense{background:#fef2f2}.summary-card.income{background:#ecfdf5}.summary-card.balance{background:#eff6ff}.summary-note{color:#64748b;font-size:.9rem}.transaction-toolbar{justify-content:space-between;align-items:center}.toolbar-status{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.transaction-table{border-collapse:collapse;width:100%}.transaction-table th,.transaction-table td{text-align:left;vertical-align:top;border-top:1px solid #e5e7eb;padding:.85rem}.transaction-table th{color:#475569;background:#f8fafc;font-size:.9rem}.transaction-table td:first-child{min-width:170px}.transaction-table td:nth-child(2){min-width:120px}.transaction-table td:nth-child(3){min-width:180px}.transaction-table td:nth-child(4){min-width:160px}.transaction-table td:nth-child(5){min-width:140px}.transaction-table td:nth-child(6){min-width:220px}.transaction-table td:nth-child(7){min-width:120px}.memo-textarea{resize:none;white-space:pre-wrap;overflow-wrap:anywhere;height:6rem;min-height:6rem;overflow:hidden auto}.memo-textarea:disabled{color:#94a3b8;background:#f1f5f9;border-color:#e2e8f0}.table-actions-cell{flex-wrap:wrap;gap:.5rem;display:flex}.deleted-row{background:#fff7f7}.deleted-row input,.deleted-row select,.deleted-row textarea{text-decoration:line-through}@media (width<=640px){.app-header{flex-direction:column;align-items:flex-start;padding:1rem}.app-header-actions,.app-user-actions{flex-direction:column;align-items:flex-start}.app-nav{flex-wrap:wrap}.app-main{padding:2rem 0}.status-card{padding:1rem}.form-grid{grid-template-columns:1fr}.toolbar{justify-content:flex-start}.category-section{padding:1rem}.summary-grid{grid-template-columns:1fr}.transaction-toolbar{flex-direction:column;align-items:flex-start}}
