:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--transition-fast: .15s;--transition-medium: .3s;--transition-slow: .5s;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--transition-colors: color var(--transition-fast) var(--ease-in-out), background-color var(--transition-fast) var(--ease-in-out), border-color var(--transition-fast) var(--ease-in-out);--transition-transform: transform var(--transition-fast) var(--ease-out);--transition-opacity: opacity var(--transition-medium) var(--ease-in-out);--z-dropdown: 100;--z-modal-backdrop: 200;--z-modal: 210;--z-toast: 300}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:var(--transition-colors)}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}:focus-visible{outline:2px solid #4299e1;outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #4299e1;outline-offset:2px}@media(prefers-color-scheme:dark){:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#63b3ed}}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.import-button-container{display:flex;flex-direction:column;align-items:center;gap:.5rem}.import-button,.export-button{background-color:#646cff;color:#fff;border:none}.import-button:hover,.export-button:hover{background-color:#535bf2;border-color:transparent}.import-error{color:#ff6b6b;background-color:#ff6b6b1a;border:1px solid #ff6b6b;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;max-width:400px;text-align:center}.import-success{color:#51cf66;background-color:#51cf661a;border:1px solid #51cf66;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;max-width:400px;text-align:center}@media(prefers-reduced-motion:reduce){*{animation:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.input--error{border-color:#cb2431!important;background-color:#cb24310d}.input--error:focus{border-color:#cb2431!important;box-shadow:0 0 0 3px #cb243133;outline:none}.error-message{display:block;color:#cb2431;font-size:.8rem;margin-top:.25rem;line-height:1.3}.form-group--error label{color:#cb2431}@media(prefers-color-scheme:dark){.input--error{border-color:#fc8181!important;background-color:#fc81811a}.input--error:focus{border-color:#fc8181!important;box-shadow:0 0 0 3px #fc818133}.error-message,.form-group--error label{color:#fc8181}}label{color:#cbd5e0;font-weight:500}@media(prefers-color-scheme:light){label{color:#4a5568}}.empty-state{color:#a0aec0}@media(prefers-color-scheme:light){.empty-state{color:#718096}}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;background-color:#fff;color:#333;font-size:14px;line-height:1.5;pointer-events:auto;min-width:280px;max-width:100%;animation:toast-enter .3s ease-out forwards}.toast--exiting{animation:toast-exit .3s ease-in forwards}.toast--success{border-left:4px solid #4caf50;background-color:#f1f8f2}.toast--success .toast__icon{color:#4caf50}.toast--error{border-left:4px solid #f44336;background-color:#fef2f2}.toast--error .toast__icon{color:#f44336}.toast--info{border-left:4px solid #646cff;background-color:#f0f1ff}.toast--info .toast__icon{color:#646cff}.toast--warning{border-left:4px solid #ff9800;background-color:#fff8f0}.toast--warning .toast__icon{color:#ff9800}.toast__icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toast__icon svg{width:100%;height:100%}.toast__content{flex:1;display:flex;flex-direction:column;gap:4px}.toast__message{margin:0;word-wrap:break-word}.toast__close{flex-shrink:0;background:none;border:none;padding:4px;margin:-4px -4px -4px 0;cursor:pointer;color:#666;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease}.toast__close:hover{background-color:#00000014;color:#333}.toast__close:focus{outline:2px solid #646cff;outline-offset:2px}.toast__close svg{width:16px;height:16px}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@media(prefers-color-scheme:dark){.toast{background-color:#2d2d2d;color:#ffffffde;box-shadow:0 4px 12px #0006}.toast--success{border-left-color:#4caf50;background-color:#4caf5026}.toast--success .toast__icon{color:#66bb6a}.toast--error{border-left-color:#f44336;background-color:#f4433626}.toast--error .toast__icon{color:#ef5350}.toast--info{border-left-color:#646cff;background-color:#646cff26}.toast--info .toast__icon{color:#7c83ff}.toast--warning{border-left-color:#ff9800;background-color:#ff980026}.toast--warning .toast__icon{color:#ffb74d}.toast__close{color:#999}.toast__close:hover{background-color:#ffffff1a;color:#ffffffde}.toast__close:focus{outline-color:#63b3ed}}.confirmation-dialog__backdrop{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.confirmation-dialog{background-color:#1a1a1a;border-radius:12px;padding:1.5rem;width:100%;max-width:400px;box-shadow:0 4px 20px #0006}.confirmation-dialog__title{margin:0 0 .75rem;font-size:1.25rem;font-weight:600;color:inherit}.confirmation-dialog__message{margin:0 0 1.5rem;font-size:1rem;line-height:1.5;color:#aaa}.confirmation-dialog__actions{display:flex;gap:.75rem;justify-content:flex-end}.confirmation-dialog__button{padding:.7rem 1.25rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s,border-color .2s}.confirmation-dialog__button--cancel{background-color:transparent;border:1px solid #444;color:#aaa}.confirmation-dialog__button--cancel:hover{background-color:#333;border-color:#555}.confirmation-dialog__button--cancel:focus{outline:none;border-color:#646cff;box-shadow:0 0 0 2px #646cff4d}.confirmation-dialog__button--confirm{border:none;color:#fff}.confirmation-dialog__button--confirm:focus{outline:none;box-shadow:0 0 0 2px #646cff80}.confirmation-dialog__button--danger{background-color:#f44336}.confirmation-dialog__button--danger:hover{background-color:#d32f2f}.confirmation-dialog__button--danger:focus{box-shadow:0 0 0 2px #f4433680}.confirmation-dialog__button--primary{background-color:#646cff}.confirmation-dialog__button--primary:hover{background-color:#535bf2}.confirmation-dialog__button--primary:focus{box-shadow:0 0 0 2px #646cff80}@media(prefers-color-scheme:light){.confirmation-dialog{background-color:#fff;box-shadow:0 4px 20px #00000026}.confirmation-dialog__title{color:#1a1a1a}.confirmation-dialog__message{color:#666}.confirmation-dialog__button--cancel{border-color:#ccc;color:#666}.confirmation-dialog__button--cancel:hover{background-color:#f5f5f5;border-color:#bbb}}.budget-table-container{width:100%;max-width:900px;margin:0 auto;padding:1rem}.ready-to-assign{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;margin-bottom:1rem;border-radius:8px;font-weight:600}.ready-to-assign--positive{background-color:#d4edda;color:#155724}.ready-to-assign--negative{background-color:#f8d7da;color:#721c24}.ready-to-assign--zero{background-color:#e2e8f0;color:#4a5568}.ready-to-assign__label{font-size:1rem}.ready-to-assign__amount{font-size:1.5rem}.budget-table{width:100%;border-collapse:collapse;background-color:var(--table-bg, #ffffff);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.budget-table__header{padding:.75rem 1rem;text-align:left;font-weight:600;background-color:var(--header-bg, #f7fafc);border-bottom:2px solid var(--border-color, #e2e8f0)}.budget-table__header--amount{text-align:right;width:120px}.budget-table__cell{padding:.5rem 1rem;border-bottom:1px solid var(--border-color, #e2e8f0)}.budget-table__cell--amount{text-align:right;font-variant-numeric:tabular-nums}.budget-table__cell--positive{color:#22863a}.budget-table__cell--negative{color:#cb2431}.budget-table__uncategorized-row{background-color:#fff3cd;border-left:4px solid #ffc107}.budget-table__uncategorized-row:hover{background-color:#ffecb5}.budget-table__cell--uncategorized-name{font-weight:600;color:#856404;padding-left:1rem}.budget-table__inherited-value{font-style:italic;opacity:.6}.budget-table__group-row{cursor:pointer;background-color:var(--group-bg, #f1f5f9);font-weight:600;animation:slideIn var(--transition-medium) var(--ease-out)}.budget-table__group-row:hover{background-color:var(--group-hover-bg, #e2e8f0)}.budget-table__collapse-icon{width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;font-family:monospace;font-size:1rem;color:var(--collapse-icon-color, #64748b)}.budget-table__cell--group-total{font-weight:600}.budget-table__category-row{background-color:var(--category-bg, #ffffff);animation:slideIn var(--transition-medium) var(--ease-out)}.budget-table__category-row:hover{background-color:var(--category-hover-bg, #f8fafc)}.budget-table__cell--category-name{padding-left:2.5rem}.budget-table__cell--editable{cursor:pointer;position:relative}.budget-table__cell--editable:hover{background-color:var(--editable-hover-bg, #edf2f7)}.budget-table__edit-input{width:100%;padding:.25rem .5rem;font-size:inherit;font-family:inherit;font-variant-numeric:tabular-nums;text-align:right;border:2px solid #3182ce;border-radius:4px;outline:none;background-color:#fff}.budget-table__edit-input:focus{box-shadow:0 0 0 3px #3182ce4d}.budget-table__edit-input--name{text-align:left}.budget-table__cell--editing{background-color:#fffde7;box-shadow:inset 0 0 0 2px #4caf50}.budget-table__cell--has-error{background-color:#fff5f5;box-shadow:inset 0 0 0 2px #cb2431}.budget-table__edit-wrapper{display:flex;flex-direction:column;align-items:flex-end;width:100%}.budget-table__edit-wrapper .error-message{position:absolute;top:100%;right:0;white-space:nowrap;z-index:10;background-color:#fff5f5;padding:.25rem .5rem;border-radius:4px;box-shadow:0 2px 4px #0000001a}.budget-table__header--actions{width:80px}.budget-table__cell--actions{text-align:right;white-space:nowrap;opacity:0;transition:opacity var(--transition-fast) var(--ease-in-out)}.budget-table__cell--actions>*{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;height:28px;box-sizing:border-box}.budget-table__group-row:hover .budget-table__cell--actions,.budget-table__category-row:hover .budget-table__cell--actions{opacity:1}.budget-table__action-btn{background:none;border:1px solid var(--border-color, #ccc);color:inherit;padding:.2em .5em;border-radius:4px;cursor:pointer;margin-left:.25rem;font-size:.9rem;transition:var(--transition-colors),transform var(--transition-fast) var(--ease-out)}.budget-table__action-btn:hover{background-color:#0000000d;border-color:#999}.budget-table__action-btn:active{transform:scale(.9)}.budget-table__action-btn--delete{color:#cb2431;border-color:#cb2431;display:inline-flex;align-items:center;justify-content:center}.budget-table__action-btn--delete:hover{background-color:#cb24311a}.budget-table__action-btn--delete svg{width:16px;height:16px;display:block}.budget-table__group-name-text,.budget-table__category-name-text{cursor:pointer}.budget-table__group-name-text{padding-left:.5rem}.budget-table__group-name-text:hover,.budget-table__category-name-text:hover{text-decoration:underline}.budget-table__add-category-row .budget-table__cell{padding:.5rem 1rem .5rem 2.5rem}.budget-table__add-category-input{padding:.4rem .6rem;font-size:inherit;border:1px solid var(--border-color, #ccc);border-radius:4px;margin-right:.5rem;width:200px}.budget-table__add-category-btn,.budget-table__cancel-category-btn{padding:.4rem .8rem;font-size:.9rem;border-radius:4px;cursor:pointer;margin-right:.25rem}.budget-table__add-category-btn{background-color:#4caf50;color:#fff;border:none}.budget-table__add-category-btn:hover{background-color:#45a049}.budget-table__cancel-category-btn{background:none;border:1px solid var(--border-color, #ccc);color:inherit}.budget-table__cancel-category-btn:hover{background-color:#0000000d}.add-group-row{margin-top:1rem;padding:.5rem 1rem}.add-group-btn{background:none;border:1px dashed var(--border-color, #ccc);color:inherit;padding:.6rem 1.2rem;border-radius:4px;cursor:pointer;font-size:.9rem;width:100%;text-align:left;transition:var(--transition-colors)}.add-group-btn:hover{background-color:#00000008;border-color:#999}.add-group-input-row{display:flex;gap:.5rem;align-items:center}.add-group-input{flex:1;padding:.5rem .75rem;font-size:inherit;border:1px solid var(--border-color, #ccc);border-radius:4px}.add-group-save-btn,.add-group-cancel-btn{padding:.5rem 1rem;font-size:.9rem;border-radius:4px;cursor:pointer}.add-group-save-btn{background-color:#4caf50;color:#fff;border:none}.add-group-save-btn:hover{background-color:#45a049}.add-group-cancel-btn{background:none;border:1px solid var(--border-color, #ccc);color:inherit}.add-group-cancel-btn:hover{background-color:#0000000d}@media(prefers-color-scheme:dark){.budget-table-container{--table-bg: #1a202c;--header-bg: #2d3748;--border-color: #4a5568;--group-bg: #2d3748;--group-hover-bg: #4a5568;--category-bg: #1a202c;--category-hover-bg: #2d3748;--editable-hover-bg: #2d3748;--collapse-icon-color: #a0aec0}.budget-table__header{color:#cbd5e0}.budget-table__uncategorized-row{background-color:#744210;border-left-color:#d69e2e}.budget-table__uncategorized-row:hover{background-color:#975a16}.budget-table__cell--uncategorized-name{color:#faf089}.ready-to-assign--positive{background-color:#276749;color:#c6f6d5}.ready-to-assign--negative{background-color:#9b2c2c;color:#fed7d7}.ready-to-assign--zero{background-color:#4a5568;color:#e2e8f0}.budget-table__cell--positive{color:#68d391}.budget-table__cell--negative{color:#fc8181}.budget-table__edit-input{background-color:#2d3748;color:#e2e8f0;border-color:#4299e1}.budget-table__cell--editing{background-color:#3d3c00;box-shadow:inset 0 0 0 2px #81c784}.budget-table__cell--has-error{background-color:#3d1c1c;box-shadow:inset 0 0 0 2px #fc8181}.budget-table__edit-wrapper .error-message{background-color:#3d1c1c;color:#fc8181}}.transaction-list{width:100%;max-width:900px;margin:0 auto;text-align:left}.transaction-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.transaction-list-header h2{margin:0;font-size:1.5rem}.add-transaction-btn{background-color:#4caf50;color:#fff;border:none;padding:.6em 1.2em;border-radius:8px;font-size:1em;cursor:pointer;transition:var(--transition-colors),transform var(--transition-fast) var(--ease-out)}.add-transaction-btn:hover{background-color:#45a049;border-color:transparent}.add-transaction-btn:active{transform:scale(.98);background-color:#3d8b40}.empty-message{color:#a0aec0;text-align:center;padding:2rem}.transaction-table{width:100%;border-collapse:collapse;font-size:.95rem}.transaction-table th,.transaction-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #333}.transaction-table th{font-weight:600;color:#cbd5e0;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.transaction-table tbody tr:hover{background-color:#ffffff0d}.amount-col{text-align:right;font-family:SF Mono,Menlo,Monaco,monospace}.amount-col.inflow{color:#4caf50}.amount-col.outflow{color:#f44336}.actions-col{text-align:right;white-space:nowrap}.action-btn{background:none;border:1px solid #555;color:inherit;padding:0 .6em;height:28px;border-radius:4px;cursor:pointer;margin-left:.3rem;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;box-sizing:border-box;transition:var(--transition-colors),transform var(--transition-fast) var(--ease-out)}.action-btn:hover{background-color:#ffffff1a;border-color:#888}.action-btn:active{transform:scale(.9)}.action-btn.edit-btn{color:#64b5f6;border-color:#64b5f6}.action-btn.edit-btn:hover{background-color:#64b5f61a}.action-btn.delete-btn{color:#cb2431;border-color:#cb2431;padding:0 .5em}.action-btn.delete-btn:hover{background-color:#cb24311a}.action-btn.delete-btn svg{width:16px;height:16px;display:block}@media(prefers-color-scheme:light){.transaction-table th,.transaction-table td{border-bottom:1px solid #ddd}.transaction-table tbody tr:hover{background-color:#00000008}.transaction-table th{color:#666}.action-btn{border-color:#ccc}.action-btn:hover{background-color:#0000000d;border-color:#999}}.modal-backdrop{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:var(--z-modal-backdrop)}.modal-content{background-color:#1a1a1a;border-radius:12px;padding:1.5rem;width:100%;max-width:400px;box-shadow:0 4px 20px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h3{margin:0;font-size:1.25rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888;padding:0;line-height:1}.close-btn:hover{color:#fff;border-color:transparent}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;color:#aaa}.form-group input,.form-group select{width:100%;padding:.6rem .8rem;border:1px solid #333;border-radius:6px;background-color:#2a2a2a;color:inherit;font-size:1rem;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#646cff}.amount-input-group{display:flex;gap:.5rem;align-items:center}.amount-input-group .flow-select{width:50px!important;flex:0 0 50px;text-align:center;font-size:1.25rem;font-weight:600;padding-left:.5rem;padding-right:.5rem}.currency-symbol{color:#888;font-size:1rem;flex-shrink:0}.amount-input-group input[type=number]{flex:1 1 auto;min-width:80px;width:auto!important}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.form-actions .delete-btn,.form-actions .cancel-btn,.form-actions .save-btn{flex:1;padding:.7rem 1rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:var(--transition-colors)}.form-actions .delete-btn{background-color:#f44336;border:none;color:#fff;flex:0 0 auto}.form-actions .delete-btn:hover{background-color:#d32f2f;border-color:transparent}.form-actions .cancel-btn{background-color:transparent;border:1px solid #444;color:#aaa}.form-actions .cancel-btn:hover{background-color:#333;border-color:#555}.form-actions .save-btn{background-color:#4caf50;border:none;color:#fff}.form-actions .save-btn:hover{background-color:#45a049;border-color:transparent}@media(prefers-color-scheme:light){.modal-content{background-color:#fff;box-shadow:0 4px 20px #00000026}.form-group input,.form-group select{border-color:#ddd;background-color:#fff}.form-actions .cancel-btn{border-color:#ccc;color:#666}.form-actions .cancel-btn:hover{background-color:#f5f5f5}}.month-navigation{display:flex;align-items:center;gap:.5rem}.month-navigation__btn{padding:.5rem .75rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:1rem;font-weight:700;transition:var(--transition-colors),transform var(--transition-fast) var(--ease-out)}.month-navigation__btn:hover{background:#f0f0f0}.month-navigation__btn:active{transform:scale(.95);background:#e0e0e0}.month-navigation__btn--prev,.month-navigation__btn--next{min-width:2.5rem;display:inline-flex;align-items:center;justify-content:center}.month-navigation__btn--prev svg,.month-navigation__btn--next svg{display:block}.month-navigation__today-slot{width:70px;display:flex;justify-content:center}.month-navigation__today-slot--left{justify-content:flex-end;margin-right:.5rem}.month-navigation__today-slot--right{justify-content:flex-start;margin-left:.5rem}.month-navigation__btn--today{padding:.5rem 1rem;background:#06c;color:#fff;border-color:#06c}.month-navigation__btn--today:hover{background:#0052a3}.month-navigation__btn--today:active{transform:scale(.95);background:#004080}.month-navigation__display{display:flex;flex-direction:column;align-items:center;min-width:180px;padding:0 1rem}.month-navigation__month{font-size:1.25rem;font-weight:600}.month-navigation__month--past{color:#666}.month-navigation__month--current{color:#000}.month-navigation__month--future{color:#06c}.month-navigation__indicator{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;margin-top:.125rem}.month-navigation__indicator--past{color:#888}.month-navigation__indicator--current{color:#28a745;font-weight:600}.month-navigation__indicator--future{color:#06c}@media(prefers-color-scheme:dark){.month-navigation__month{color:#e2e8f0}.month-navigation__month--past{color:#a0aec0}.month-navigation__month--current{color:#e2e8f0}.month-navigation__month--future{color:#63b3ed}.month-navigation__btn{color:#a0aec0;background:#2d3748;border-color:#4a5568}.month-navigation__btn:hover{background-color:#4a5568;color:#e2e8f0}.month-navigation__btn:active{background-color:#1a202c}.month-navigation__btn--today{background:#3182ce;color:#fff;border-color:#3182ce}.month-navigation__btn--today:hover{background:#2b6cb0;border-color:#2b6cb0}.month-navigation__btn--today:active{background:#2c5282;border-color:#2c5282}.month-navigation__indicator--past{color:#718096}.month-navigation__indicator--current{color:#68d391}.month-navigation__indicator--future{color:#63b3ed}}.keyboard-shortcuts-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) var(--ease-out)}.keyboard-shortcuts-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:400px;width:90%;outline:none;animation:slideUp var(--transition-normal) var(--ease-out)}.keyboard-shortcuts-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.keyboard-shortcuts-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#1a202c}.keyboard-shortcuts-close{background:none;border:none;font-size:1.5rem;color:#718096;cursor:pointer;padding:.25rem;line-height:1;border-radius:4px;transition:var(--transition-colors)}.keyboard-shortcuts-close:hover{background:#f7fafc;color:#1a202c}.keyboard-shortcuts-content{padding:1rem 1.25rem}.keyboard-shortcuts-table{width:100%;border-collapse:collapse}.keyboard-shortcuts-table tr{border-bottom:1px solid #f0f0f0}.keyboard-shortcuts-table tr:last-child{border-bottom:none}.keyboard-shortcuts-table td{padding:.625rem 0}.keyboard-shortcuts-key{width:60px}.keyboard-shortcuts-key kbd{display:inline-block;padding:.25rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;font-weight:500;color:#1a202c;background:#f7fafc;border:1px solid #e2e8f0;border-radius:4px;box-shadow:0 1px 2px #0000000d;min-width:1.5rem;text-align:center}.keyboard-shortcuts-description{color:#4a5568;font-size:.9375rem}.keyboard-shortcuts-footer{padding:.75rem 1.25rem;background:#f7fafc;border-top:1px solid #e2e8f0;border-radius:0 0 8px 8px}.keyboard-shortcuts-hint{font-size:.8125rem;color:#718096}.keyboard-shortcuts-hint kbd{display:inline-block;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;background:#e2e8f0;border-radius:3px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-color-scheme:dark){.keyboard-shortcuts-overlay{background:#000000b3}.keyboard-shortcuts-modal{background:#1a202c;box-shadow:0 4px 20px #0006}.keyboard-shortcuts-header{border-bottom-color:#2d3748}.keyboard-shortcuts-header h2{color:#e2e8f0}.keyboard-shortcuts-close{color:#a0aec0}.keyboard-shortcuts-close:hover{background:#2d3748;color:#e2e8f0}.keyboard-shortcuts-table tr{border-bottom-color:#2d3748}.keyboard-shortcuts-key kbd{color:#e2e8f0;background:#2d3748;border-color:#4a5568}.keyboard-shortcuts-description{color:#a0aec0}.keyboard-shortcuts-footer{background:#171923;border-top-color:#2d3748}.keyboard-shortcuts-hint{color:#718096}.keyboard-shortcuts-hint kbd{background:#2d3748;color:#a0aec0}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{padding:1rem 2rem;border-bottom:1px solid var(--border-color, #e2e8f0);background-color:var(--header-bg, #f7fafc)}.header-content{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;max-width:1200px;margin:0 auto;gap:1rem}.header-left{justify-self:start}.header-left h1{margin:0;font-size:1.5rem;font-weight:600}.header-center{justify-self:center}.header-right{justify-self:end;display:flex;align-items:center;gap:.5rem}.header-actions button{height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;font-size:.9rem;white-space:nowrap}button{transition:transform var(--transition-fast) var(--ease-out)}button:active{transform:scale(.98)}.app-main{flex:1;padding:1rem 2rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.budget-section{margin-bottom:2rem}.transactions-section{margin-top:2rem}@media(prefers-color-scheme:dark){.app-header{--border-color: #4a5568;--header-bg: #2d3748}}
