.notifications-container{position:fixed;top:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.notification{pointer-events:auto;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-neutral);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);min-width:280px;max-width:400px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);box-shadow:0 4px 12px #00000026;animation:notification-slide-in .3s cubic-bezier(.34,1.56,.64,1)}.notification-success{border-left-color:var(--color-accent-increase)}.notification-error{border-left-color:var(--color-accent-decrease)}.notification-info{border-left-color:var(--color-neutral)}.notification-message{font-size:var(--text-base);color:var(--color-text);line-height:1.4}.notification-close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:2px;font-size:var(--text-lg);line-height:1;flex-shrink:0;transition:color var(--transition-fast)}.notification-close:hover{color:var(--color-text)}@keyframes notification-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8);position:relative;background-image:radial-gradient(circle,var(--color-border) 1px,transparent 1px);background-size:24px 24px}.auth-card{background:var(--color-surface);border:2px solid var(--color-ink);border-radius:var(--radius-lg);padding:var(--space-10);width:100%;max-width:420px}.auth-brand{text-align:center;margin-bottom:var(--space-8)}.auth-brand-logo{width:80px;height:80px;object-fit:contain;display:block;margin:0 auto .75rem}.auth-brand-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text);margin-bottom:.25rem}.auth-brand-subtitle{font-size:var(--text-base);color:var(--color-text-secondary)}.auth-theme-toggle{position:fixed;bottom:var(--space-6);right:var(--space-6)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0e0d66;z-index:100;border:none;cursor:pointer}.sidebar{width:64px;min-height:100vh;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:var(--space-5) var(--space-2);flex-shrink:0;overflow:hidden;transition:width .25s ease}.sidebar:hover{width:240px}.sidebar-brand{display:flex;align-items:center;gap:.625rem;white-space:nowrap;overflow:hidden;width:100%;box-sizing:border-box;padding:.5rem 0;justify-content:center}.sidebar:hover .sidebar-brand{padding:var(--space-2) var(--space-3) var(--space-4);padding-left:calc(2px + var(--space-3));justify-content:flex-start}.sidebar-brand-logo{width:32px;height:32px;object-fit:contain;display:block;flex-shrink:0}.sidebar-brand-wordmark{display:flex;align-items:baseline;gap:.25rem;font-size:var(--text-lg);color:var(--color-text);opacity:0;transform:translate(-8px);transition:opacity .22s ease,transform .22s ease;width:0;min-width:0;overflow:hidden}.sidebar:hover .sidebar-brand-wordmark{opacity:1;transform:translate(0);width:auto;min-width:0;overflow:visible}.sidebar-brand-wordmark-vanta{font-family:var(--font-wordmark-vanta);font-weight:600;letter-spacing:.01em}.sidebar-brand-wordmark-tracker{font-family:var(--font-wordmark-tracker);font-weight:300;font-variant:small-caps;letter-spacing:.02em}.sidebar-nav{display:flex;flex-direction:column;gap:.125rem;flex:1}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:.5rem var(--space-3);border-radius:0;border-left:2px solid transparent;color:var(--color-text-secondary);font-size:var(--text-base);font-weight:500;transition:color var(--transition-fast),border-color var(--transition-fast);width:100%;text-align:left;white-space:nowrap;overflow:hidden}.sidebar-link:hover{color:var(--color-text)}.sidebar-link-active{color:var(--color-text);font-weight:600;border-left-color:var(--color-primary)}.sidebar-icon{width:18px;height:18px;flex-shrink:0}.sidebar-link-label{opacity:0;transition:opacity .2s ease}.sidebar:hover .sidebar-link-label{opacity:1}.sidebar-footer{border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-3)}.sidebar-logout{color:var(--color-text-secondary)}.sidebar-logout:hover{color:var(--color-accent-decrease)}@media (max-width: 768px){.sidebar-overlay{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:101;width:240px;transform:translate(-100%);transition:transform .2s ease-out;box-shadow:none}.sidebar.sidebar--open{transform:translate(0);box-shadow:4px 0 16px #00000026}.sidebar-brand-title,.sidebar-link-label{opacity:1}}.header{height:56px;background:color-mix(in srgb,var(--color-surface) 80%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-8);flex-shrink:0}.header-menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;margin:0 -.5rem 0 0;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text);cursor:pointer}.header-menu-btn:hover{background:var(--color-hover)}.header-menu-btn svg{width:24px;height:24px}.header-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-text)}.header-right{display:flex;align-items:center;gap:var(--space-4)}.header-user{font-size:var(--text-base);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-2)}.header-role-badge{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.125rem .5rem;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}@media (max-width: 768px){.header-menu-btn{display:flex}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0e0d99;z-index:1100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:modal-fade-in .15s ease}.modal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-height:calc(100vh - 2rem);overflow-y:auto;animation:modal-scale-in .15s ease}.modal-card-default{max-width:480px}.modal-card-small{max-width:400px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.modal-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-text)}.modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:none;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.modal-close:hover{background:var(--color-hover);color:var(--color-text)}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95) translateY(4px);filter:blur(2px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.form-field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:var(--space-4)}.form-field-label{font-size:var(--text-base);font-weight:500;color:var(--color-text)}.form-field-input{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.625rem .75rem;color:var(--color-text);font-size:var(--text-base);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-field-input::placeholder{color:var(--color-neutral)}.form-field-input:focus{border-color:var(--color-ink);box-shadow:0 0 0 1px var(--color-ink)}.form-field-input-error{border-color:var(--color-accent-decrease)}.form-field-textarea{resize:vertical;min-height:80px}.form-field-error{font-size:var(--text-xs);color:var(--color-accent-decrease)}.currency-selector{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);cursor:pointer}.currency-selector:focus{outline:none;border-color:var(--color-ink);box-shadow:0 0 0 1px var(--color-ink)}.currency-selector:disabled{opacity:.6;cursor:not-allowed}.ifrs-picker{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);cursor:pointer}.ifrs-picker:focus{outline:none;border-color:var(--color-ink);box-shadow:0 0 0 1px var(--color-ink)}.ifrs-picker:disabled{opacity:.6;cursor:not-allowed}.account-form-select-field{display:flex;flex-direction:column;gap:.375rem;margin-bottom:var(--space-4)}.account-form-select-label{font-size:var(--text-base);font-weight:500;color:var(--color-text)}.account-form-select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.625rem .75rem;color:var(--color-text);font-size:var(--text-base);width:100%;transition:border-color var(--transition-fast);outline:none}.account-form-select:focus{border-color:var(--color-ink)}.account-form-error{background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);border:1px solid var(--color-accent-decrease);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:var(--text-base);color:var(--color-accent-decrease);margin-bottom:var(--space-4)}.account-form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.account-form-actions button{flex:1;padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.account-form-cancel{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.account-form-cancel:hover{border-color:var(--color-border-strong)}.account-form-submit{background:var(--color-primary);color:var(--color-primary-text);border:none}.account-form-submit:hover:not(:disabled){opacity:.9}.account-form-submit:disabled{opacity:.4;cursor:not-allowed}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;display:flex;flex-direction:column;min-width:0}.app-content{flex:1;max-width:1120px;margin:0 auto;width:100%;padding:var(--space-8) var(--space-10);overflow-y:auto}@media (max-width: 768px){.app-content{padding:var(--space-6) var(--space-4)}}.login-heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-text);margin-bottom:.25rem}.login-subheading{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-6)}.login-error{background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);border:1px solid var(--color-accent-decrease);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:var(--text-base);color:var(--color-accent-decrease);margin-bottom:var(--space-4)}.login-button{width:100%;padding:.625rem;background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast);margin-top:var(--space-2)}.login-button:hover{opacity:.9}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-footer{text-align:center;font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-6)}.login-link{color:var(--color-text);font-weight:600}.login-link:hover{text-decoration:underline}.register-heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-text);margin-bottom:.25rem}.register-subheading{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-6)}.register-error{background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);border:1px solid var(--color-accent-decrease);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:var(--text-base);color:var(--color-accent-decrease);margin-bottom:var(--space-4)}.register-button{width:100%;padding:.625rem;background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast);margin-top:var(--space-2)}.register-button:hover{opacity:.9}.register-button:disabled{opacity:.5;cursor:not-allowed}.register-footer{text-align:center;font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-6)}.register-link{color:var(--color-text);font-weight:600}.register-link:hover{text-decoration:underline}.balance-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4)}.balance-summary-card{background:transparent;border:none;border-top:2px solid var(--color-ink);border-radius:0;padding:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-2)}.balance-summary-label{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.balance-summary-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.balance-summary-positive{color:var(--color-accent-increase)}.balance-summary-negative{color:var(--color-accent-decrease)}.balance-summary-equity{color:var(--color-primary)}.balance-summary-warning{color:var(--color-accent-warning)}.balance-summary-equation{grid-column:1 / -1;text-align:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600}.balance-summary-balanced{background:color-mix(in srgb,var(--color-accent-increase) 10%,transparent);color:var(--color-accent-increase)}.balance-summary-unbalanced{background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);color:var(--color-accent-decrease)}.balance-summary-multi{display:flex;flex-direction:column;gap:var(--space-3)}.balance-summary-currency-section{background:transparent;border:none;border-top:1px solid var(--color-border);border-radius:0;padding:var(--space-4) 0}.balance-summary-currency-badge{display:inline-block;font-size:var(--text-xs);font-weight:600;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);padding:.125rem var(--space-2);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.balance-summary-currency-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-4)}.balance-summary-cell{display:flex;flex-direction:column;gap:.25rem}.balance-summary-cell .balance-summary-value{font-size:var(--text-xl)}.balance-summary-estimated{background:transparent;border:none;border-top:2px dashed var(--color-border);border-radius:0;padding:var(--space-4) 0}.balance-summary-estimated-title{display:block;font-size:var(--text-sm);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.balance-summary-disclaimer{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic;margin-top:var(--space-2)}.balance-summary-fx-diff-row{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-border)}.balance-summary-fx-diff-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary)}.balance-summary-fx-diff-value{font-family:var(--font-display);font-size:var(--text-md);font-weight:400}.balance-summary-fx-diff-hint{font-size:var(--text-xs);color:var(--color-text-secondary);font-style:italic}.balance-summary-revalue-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-3)}.balance-summary-revalue-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary);border:1px solid var(--color-primary);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.balance-summary-revalue-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 20%,transparent)}.balance-summary-revalue-btn:disabled{opacity:.5;cursor:not-allowed}.balance-summary-rollback-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);color:var(--color-accent-decrease);border:1px solid var(--color-accent-decrease);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.balance-summary-rollback-btn:hover:not(:disabled){background:color-mix(in srgb,var(--color-accent-decrease) 20%,transparent)}.balance-summary-rollback-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.balance-summary{grid-template-columns:repeat(2,1fr)}.balance-summary-currency-row{grid-template-columns:repeat(2,1fr);gap:var(--space-2)}}@media (max-width: 480px){.balance-summary,.balance-summary-currency-row{grid-template-columns:1fr}}.skeleton{background:var(--color-hover);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-text{height:.875rem;margin-bottom:var(--space-2)}.skeleton-text:last-child{margin-bottom:0}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.account-card{display:block;background:transparent;border:none;border-left:3px solid var(--color-border);border-radius:0;padding:var(--space-4) var(--space-5);transition:border-color var(--transition-fast)}.account-card:hover{border-left-color:var(--color-primary)}.account-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.account-card-name{font-size:var(--text-md);font-weight:600;color:var(--color-text)}.account-card-badges{display:flex;align-items:center;gap:.375rem}.account-card-shared-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-xs);font-weight:500;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);color:var(--color-primary)}.account-card-currency{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-secondary);background:transparent}.account-card-type{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);color:var(--color-text-secondary)}.account-card-type-asset{color:var(--color-accent-increase)}.account-card-type-liability{color:var(--color-accent-decrease)}.account-card-type-income{color:var(--color-accent-increase)}.account-card-type-expense{color:var(--color-accent-decrease)}.account-card-owner{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:.375rem}.account-card-share-count-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-xs);font-weight:500;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);color:var(--color-primary)}.account-card-description{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.account-card-balance{margin-top:var(--space-3)}.account-card-positive{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-accent-increase)}.account-card-negative{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-accent-decrease)}.account-card-equity{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-primary)}.account-card-warning{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-accent-warning)}.transaction-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.transaction-row:last-child{border-bottom:none}.transaction-row--voided{opacity:.5}.transaction-row--voided .transaction-row-description,.transaction-row--voided .transaction-row-amount{text-decoration:line-through}.transaction-row-left{display:flex;align-items:center;gap:var(--space-4);min-width:0}.transaction-row-right{display:flex;align-items:center;gap:var(--space-3)}.transaction-row-date{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;min-width:100px}.transaction-row-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.transaction-row-description{font-size:var(--text-base);font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.375rem}.transaction-row-recurring-badge{font-size:.75rem;color:var(--color-primary);flex-shrink:0;line-height:1}.transaction-row-void-badge{font-size:var(--text-xs);font-weight:700;color:var(--color-accent-decrease);background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);padding:.0625rem .375rem;border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.transaction-row-accounts{font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-row-contacts{font-size:var(--text-xs);color:var(--color-text-secondary)}.transaction-row-tags{display:flex;flex-wrap:wrap;gap:.25rem}.transaction-row-tag{display:inline-block;padding:.0625rem .375rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;background:var(--color-primary);color:var(--color-primary-text)}.transaction-row-exchange{font-size:var(--text-xs);color:var(--color-primary);font-style:italic}.transaction-row-amount{font-family:var(--font-display);font-size:var(--text-lg);font-weight:400;color:var(--color-text);white-space:nowrap;display:inline-flex;align-items:center;gap:.375rem}.transaction-row-increase{color:var(--color-accent-increase)}.transaction-row-decrease{color:var(--color-accent-decrease)}.transaction-row-type-badge{font-family:var(--font-body);font-size:.5625rem;font-weight:700;padding:.0625rem .25rem;border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb,var(--color-text-secondary) 15%,transparent);color:var(--color-text-secondary)}.transaction-row-type-dr{background:color-mix(in srgb,var(--color-accent-increase) 12%,transparent);color:var(--color-accent-increase)}.transaction-row-type-cr{background:color-mix(in srgb,var(--color-accent-decrease) 12%,transparent);color:var(--color-accent-decrease)}.transaction-row-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem}.transaction-row-debit-amt{color:var(--color-accent-increase);font-size:var(--text-sm)}.transaction-row-credit-amt{color:var(--color-accent-decrease);font-size:var(--text-sm)}.transaction-row-actions{display:flex;gap:.375rem}.transaction-row-btn{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);transition:all var(--transition-fast)}.transaction-row-btn:hover{background:var(--color-hover)}.transaction-row-btn-clone{color:var(--color-accent-info);border-color:var(--color-accent-info)}.transaction-row-btn-clone:hover{background:color-mix(in srgb,var(--color-accent-info) 10%,transparent)}.transaction-row-btn-void{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease)}.transaction-row-btn-void:hover{background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent)}.transaction-row-menu{position:relative}.transaction-row-menu-btn{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-lg);font-weight:700;cursor:pointer;line-height:1;letter-spacing:.1em;transition:all var(--transition-fast)}.transaction-row-menu-btn:hover{background:var(--color-hover)}.transaction-row-menu-dropdown{position:absolute;right:0;top:100%;margin-top:var(--space-1);z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #00000014;min-width:120px;overflow:hidden}.transaction-row-menu-item{display:block;width:100%;padding:var(--space-2) var(--space-3);text-align:left;font-size:var(--text-sm);color:var(--color-text);background:transparent;border:none;cursor:pointer;transition:background var(--transition-fast)}.transaction-row-menu-item:hover{background:var(--color-hover)}.transaction-row-menu-item-void{color:var(--color-accent-decrease)}@media (min-width: 641px){.transaction-row-menu-btn{display:none}.transaction-row-actions{display:flex}}@media (max-width: 640px){.transaction-row{flex-direction:column;align-items:stretch;gap:var(--space-2)}.transaction-row-left{flex-direction:row;align-items:flex-start;gap:var(--space-2);min-width:0}.transaction-row-date{min-width:auto;flex-shrink:0}.transaction-row-description{white-space:normal}.transaction-row-right{justify-content:space-between;align-items:center}.transaction-row-actions{display:none}.transaction-row-menu-btn{display:flex}.transaction-row-exchange{white-space:normal;word-break:break-word}}.dashboard-tabs{display:flex;gap:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.dashboard-tab-pill{padding:var(--space-2) 0;border-radius:0;font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast);cursor:pointer}.dashboard-tab-pill:hover{color:var(--color-text)}.dashboard-tab-pill-active{color:var(--color-text);border-bottom-color:var(--color-ink)}.dashboard-tab-pill-active:hover{color:var(--color-text)}.dashboard-tab-count{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--space-2);padding:0 var(--space-2);min-width:1.25rem;height:1.125rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;background:var(--color-hover);color:var(--color-text-secondary)}.dashboard-tab-pill-active .dashboard-tab-count{background:var(--color-ink);color:var(--color-background)}.dashboard-section{margin-bottom:var(--space-10)}.dashboard-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-ink)}.dashboard-section-title{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em}.dashboard-section-link{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500}.dashboard-section-link:hover{color:var(--color-text)}.dashboard-accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.dashboard-transactions{border-top:1px solid var(--color-border);padding:0}.dashboard-new-button{display:inline-flex;align-items:center;padding:.4375rem var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;transition:opacity var(--transition-fast)}.dashboard-new-button:hover{opacity:.9}.dashboard-empty{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-6) 0}.dashboard-error{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-8) 0}.dashboard-retry-button{margin-top:var(--space-3);padding:.4375rem var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;transition:opacity var(--transition-fast)}.dashboard-retry-button:hover{opacity:.9}.search-input-wrapper{position:relative;display:flex;align-items:center;width:100%;max-width:300px}.search-icon{position:absolute;left:.75rem;width:1rem;height:1rem;color:var(--color-text-secondary);pointer-events:none}.search-input{width:100%;padding:.5rem .75rem .5rem 2.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--text-sm);transition:all var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.accounts-page-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-5)}.accounts-page-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text)}.accounts-new-button{display:inline-flex;align-items:center;padding:.4375rem var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;transition:opacity var(--transition-fast)}.accounts-new-button:hover{opacity:.9}.accounts-filter{display:flex;gap:var(--space-6);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.accounts-filter-pill{padding:var(--space-2) 0;border-radius:0;font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast)}.accounts-filter-pill:hover{color:var(--color-text)}.accounts-filter-pill-active{color:var(--color-text);border-bottom-color:var(--color-ink)}.accounts-filter-pill-active:hover{color:var(--color-text)}.accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.accounts-group-toggle{margin-left:auto;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.accounts-group-toggle:hover{color:var(--color-text);border-color:var(--color-text-secondary)}.accounts-group-toggle-active{color:var(--color-primary);border-color:var(--color-primary)}.accounts-currency-group{margin-bottom:var(--space-6)}.accounts-currency-group-header{font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);padding-bottom:var(--space-2);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.accounts-empty{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-12) 0}.accounts-retry-button{margin-top:var(--space-3);padding:.4375rem var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;transition:opacity var(--transition-fast)}.accounts-retry-button:hover{opacity:.9}.confirm-dialog-message{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--space-6)}.confirm-dialog-actions{display:flex;gap:var(--space-3)}.confirm-dialog-actions button{flex:1;padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.confirm-dialog-cancel{background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text)}.confirm-dialog-cancel:hover:not(:disabled){border-color:var(--color-border-strong)}.confirm-dialog-confirm{border:none;background:var(--color-primary);color:var(--color-primary-text)}.confirm-dialog-confirm-danger{background:var(--color-accent-decrease);color:#fff}.confirm-dialog-confirm:hover:not(:disabled){opacity:.9}.confirm-dialog-confirm:disabled,.confirm-dialog-cancel:disabled{opacity:.4;cursor:not-allowed}.share-dialog-body{display:flex;flex-direction:column;gap:var(--space-5)}.share-dialog-form{display:flex;gap:var(--space-2);align-items:flex-end}.share-dialog-email{flex:1}.share-dialog-email input{width:100%;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--color-text);font-size:var(--text-sm);outline:none;transition:border-color var(--transition-fast)}.share-dialog-email input:focus{border-color:var(--color-ink)}.share-dialog-permission-select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) .625rem;color:var(--color-text);font-size:var(--text-sm);outline:none}.share-dialog-add-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity var(--transition-fast)}.share-dialog-add-btn:hover{opacity:.9}.share-dialog-add-btn:disabled{opacity:.5;cursor:not-allowed}.share-dialog-error{font-size:var(--text-sm);color:var(--color-accent-decrease)}.share-dialog-list{display:flex;flex-direction:column;gap:var(--space-2)}.share-dialog-row{display:flex;align-items:center;gap:var(--space-3);padding:.625rem 0;border-bottom:1px solid var(--color-border)}.share-dialog-row:last-child{border-bottom:none}.share-dialog-user-info{flex:1;min-width:0}.share-dialog-user-name{font-size:var(--text-base);font-weight:500;color:var(--color-text)}.share-dialog-user-email{font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-dialog-row-select{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.375rem var(--space-2);color:var(--color-text);font-size:var(--text-xs);outline:none}.share-dialog-revoke-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);flex-shrink:0}.share-dialog-revoke-btn:hover{background:var(--color-hover);color:var(--color-accent-decrease)}.share-dialog-empty{text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);padding:var(--space-4) 0}.account-detail-back{display:inline-flex;align-items:center;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-5);transition:color var(--transition-fast)}.account-detail-back:hover{color:var(--color-text)}.account-detail-header{display:flex;align-items:flex-start;justify-content:space-between;border-top:2px solid var(--color-ink);padding:var(--space-6) 0;margin-bottom:var(--space-6);gap:var(--space-4)}.account-detail-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text);margin-bottom:var(--space-2)}.account-detail-meta{display:flex;align-items:center;gap:var(--space-3)}.account-detail-type{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);color:var(--color-text-secondary)}.account-detail-type-asset,.account-detail-type-income{color:var(--color-accent-increase)}.account-detail-type-liability,.account-detail-type-expense{color:var(--color-accent-decrease)}.account-detail-description{font-size:var(--text-sm);color:var(--color-text-secondary)}.account-detail-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3)}.account-detail-actions{display:flex;gap:var(--space-2)}.account-detail-action-btn{padding:.375rem var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;transition:border-color var(--transition-fast),color var(--transition-fast)}.account-detail-action-btn:hover{border-color:var(--color-border-strong);color:var(--color-text)}.account-detail-action-delete{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease)}.account-detail-action-delete:hover{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease);opacity:.8}.account-detail-balance-section{text-align:right}.account-detail-balance-label{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.account-detail-balance{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.account-detail-positive{color:var(--color-accent-increase)}.account-detail-negative{color:var(--color-accent-decrease)}.account-detail-equity{color:var(--color-primary)}.account-detail-warning{color:var(--color-accent-warning)}.account-detail-transactions-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-ink)}.account-detail-void-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.account-detail-void-toggle input{cursor:pointer}.account-detail-section-title{font-size:var(--text-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0}.account-detail-transactions-list{border-top:1px solid var(--color-border);padding:0}.account-detail-empty,.account-detail-not-found{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-12) 0}.datepicker{position:relative;width:100%}.datepicker-trigger{display:flex;align-items:center;width:100%;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--color-text);font-size:var(--text-base);cursor:pointer;transition:border-color var(--transition-fast);gap:var(--space-2)}.datepicker-trigger:focus{outline:none;border-color:var(--color-ink)}.datepicker-trigger-text{flex:1;text-align:left}.datepicker-trigger-icon{color:var(--color-text-secondary);flex-shrink:0}.datepicker-popup{position:absolute;top:calc(100% + 6px);left:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);z-index:60;box-shadow:0 8px 24px #00000024;width:280px}.datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.datepicker-header-title{font-size:var(--text-base);font-weight:600;color:var(--color-text)}.datepicker-header-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.datepicker-header-btn:hover{background:var(--color-hover);color:var(--color-text)}.datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:.25rem}.datepicker-weekday{text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);padding:.25rem 0;text-transform:uppercase}.datepicker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker-day{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;background:none;color:var(--color-text);font-size:var(--text-sm);border-radius:var(--radius-md);cursor:pointer;transition:background .1s,color .1s;margin:0 auto}.datepicker-day:hover{background:var(--color-hover)}.datepicker-day--outside{color:var(--color-neutral)}.datepicker-day--today{font-weight:700;box-shadow:inset 0 0 0 1px var(--color-border)}.datepicker-day--selected{background:var(--color-primary);color:var(--color-primary-text);font-weight:600}.datepicker-day--selected:hover{background:var(--color-primary-hover)}@media (max-width: 768px){.datepicker-trigger{display:none}.datepicker-native{display:block;width:100%;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--color-text);font-size:var(--text-base)}.datepicker-popup{display:none}}@media (min-width: 769px){.datepicker-native{display:none}}.account-combobox{position:relative;width:100%}.account-combobox-input{width:100%;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) 1.75rem var(--space-2) .625rem;color:var(--color-text);font-size:var(--text-sm);outline:none;transition:border-color var(--transition-fast);cursor:text}.account-combobox-input::placeholder{color:var(--color-text-secondary)}.account-combobox-input:focus{border-color:var(--color-ink)}.account-combobox-chevron{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-secondary)}.account-combobox-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:220px;overflow-y:auto;z-index:50;box-shadow:0 4px 16px #0000001f}.account-combobox-option{display:block;width:100%;text-align:left;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);background:none;border:none;cursor:pointer;transition:background .1s}.account-combobox-option:hover,.account-combobox-option--highlighted{background:var(--color-hover)}.account-combobox-option--selected{font-weight:600}.account-combobox-option--new{color:var(--color-primary);font-weight:500;border-top:1px solid var(--color-border)}.account-combobox-option-text{display:flex;align-items:center;gap:.375rem}.account-combobox-chip{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:500;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);white-space:nowrap}.account-combobox-chip--shared{color:var(--color-primary)}.account-combobox-chip--sharing{color:var(--color-text-secondary)}.account-combobox-empty{padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center}.contact-selector{position:relative;min-width:120px}.contact-selector-input{width:100%;padding:.375rem 1.5rem .375rem var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}.contact-selector-clear{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-xs);padding:.125rem .25rem}.contact-selector-dropdown{position:absolute;top:100%;left:0;right:0;max-height:180px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #0000001a;z-index:20}.contact-selector-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.375rem var(--space-2);background:none;border:none;cursor:pointer;font-size:var(--text-sm);text-align:left;color:var(--color-text);transition:background var(--transition-fast)}.contact-selector-option:hover{background:var(--color-hover)}.contact-selector-cat{font-size:var(--text-xs);color:var(--color-text-secondary)}.contact-selector-new{color:var(--color-primary);font-style:italic}.contact-selector-empty{padding:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center}.budget-selector-container{position:relative;width:100%}.budget-selector-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.375rem var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;text-align:left}.budget-selector-trigger:disabled{opacity:.6;cursor:not-allowed}.budget-selector-trigger-arrow{font-size:.625rem;color:var(--color-text-secondary);margin-left:var(--space-2)}.budget-selector-dropdown{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001f;z-index:50;max-height:300px;display:flex;flex-direction:column}.budget-selector-search{padding:var(--space-2);border:none;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);outline:none;background:transparent;color:var(--color-text)}.budget-selector-search::placeholder{color:var(--color-text-tertiary)}.budget-selector-options{overflow-y:auto;max-height:250px}.budget-selector-group{padding:.125rem 0}.budget-selector-group-label{padding:.375rem .625rem .25rem;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.budget-selector-item{display:flex;align-items:center;justify-content:space-between;padding:.375rem .625rem;cursor:pointer;font-size:var(--text-sm);transition:background .1s}.budget-selector-item:hover{background:var(--color-hover)}.budget-selector-item-selected{background:color-mix(in srgb,var(--color-primary) 10%,transparent);font-weight:500}.budget-selector-item-name{color:var(--color-text)}.budget-selector-item-info{font-size:var(--text-xs);color:var(--color-text-secondary);margin-left:var(--space-2);white-space:nowrap}.budget-selector-item-other .budget-selector-item-name{color:var(--color-text-secondary)}.budget-selector-empty{padding:var(--space-3);text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm)}.tag-selector-container{position:relative}.tag-selector-trigger{display:flex;align-items:center;justify-content:space-between;min-height:2rem;padding:.25rem var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;font-size:var(--text-sm);gap:.25rem}.tag-selector-chips{display:flex;flex-wrap:wrap;gap:.25rem}.tag-selector-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);background:var(--color-primary);color:var(--color-primary-text);white-space:nowrap}.tag-selector-chip-remove{background:none;border:none;color:inherit;cursor:pointer;font-size:.625rem;padding:0;line-height:1;opacity:.7}.tag-selector-chip-remove:hover{opacity:1}.tag-selector-placeholder{color:var(--color-text-tertiary)}.tag-selector-arrow{font-size:.625rem;color:var(--color-text-tertiary);flex-shrink:0}.tag-selector-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001a;max-height:200px;display:flex;flex-direction:column}.tag-selector-search{padding:var(--space-2);border:none;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);outline:none;background:transparent;color:var(--color-text)}.tag-selector-options{overflow-y:auto;max-height:160px}.tag-selector-item{display:flex;align-items:center;gap:var(--space-2);padding:.375rem var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-text);transition:background var(--transition-fast)}.tag-selector-item:hover,.tag-selector-item-selected{background:var(--color-hover)}.tag-selector-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.tag-selector-item-name{flex:1}.tag-selector-check{color:var(--color-primary);font-size:var(--text-xs)}.tag-selector-create{color:var(--color-primary);font-style:italic}.tag-selector-empty{padding:var(--space-2);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.txline-input{display:grid;grid-template-columns:2fr 90px 110px 1fr 1fr 1fr 1fr 36px;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.txline-input-select,.txline-input-number,.txline-input-text{width:100%;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) .625rem;color:var(--color-text);font-size:var(--text-sm);outline:none;transition:border-color var(--transition-fast)}.txline-input-select:focus,.txline-input-number:focus,.txline-input-text:focus{border-color:var(--color-ink)}.txline-input-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-2) center;padding-right:var(--space-6)}.txline-input-number{text-align:right}.txline-input-remove{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:all var(--transition-fast)}.txline-input-remove:hover:not(:disabled){background:var(--color-hover);color:var(--color-accent-decrease)}.txline-input-remove:disabled{opacity:.3;cursor:not-allowed}.txline-exchange-toggle{margin-bottom:.25rem}.txline-exchange-toggle-btn{font-size:var(--text-xs);color:var(--color-primary);background:none;border:none;cursor:pointer;padding:0}.txline-exchange-toggle-btn:hover{text-decoration:underline}.txline-exchange-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);background:color-mix(in srgb,var(--color-primary) 5%,var(--color-background));border-radius:var(--radius-md);border:1px solid var(--color-border)}.txline-exchange-field{display:flex;flex-direction:column;gap:.25rem}.txline-exchange-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.txline-currency-label{font-size:var(--text-xs);color:var(--color-primary);font-weight:500;margin-top:.125rem}.txline-readonly{opacity:.7;cursor:default;background:color-mix(in srgb,var(--color-border) 20%,var(--color-background))}.txline-budget-exchange-row{background:color-mix(in srgb,var(--color-accent-increase) 5%,var(--color-background));border-color:color-mix(in srgb,var(--color-accent-increase) 25%,var(--color-border))}@media (max-width: 768px){.txline-input{grid-template-columns:1fr 1fr;gap:.375rem}.txline-input-account,.txline-input-desc,.txline-input-contact,.txline-input-budget{grid-column:1 / -1}.txline-input-remove{justify-self:end}.txline-exchange-row{grid-template-columns:1fr}}.txform{max-width:1400px}.txform-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text);margin-bottom:var(--space-6)}.txform-error{background:color-mix(in srgb,var(--color-accent-decrease) 10%,transparent);border:1px solid var(--color-accent-decrease);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:var(--text-base);color:var(--color-accent-decrease);margin-bottom:var(--space-4)}.txform-success{background:color-mix(in srgb,var(--color-accent-increase) 10%,transparent);border:1px solid var(--color-accent-increase);border-radius:var(--radius-md);padding:.625rem .75rem;font-size:var(--text-base);color:var(--color-accent-increase);margin-bottom:var(--space-4)}.txform-fields,.txform-lines-section{background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:0;padding:var(--space-5);margin-bottom:var(--space-6)}.txform-lines-title{font-size:var(--text-md);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3)}.txform-lines-header{display:grid;grid-template-columns:2fr 90px 110px 1fr 1fr 1fr 1fr 36px;gap:.5rem;font-size:var(--text-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);padding:0 .125rem}.form-field-checkbox{padding-top:.25rem}.form-field-checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none}.form-field-checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary);cursor:pointer}.txform-add-line{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);padding:var(--space-2) 0;margin-top:var(--space-1)}.txform-add-line:hover{color:var(--color-text)}.txform-balance{background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:0;padding:var(--space-4) var(--space-5);margin-bottom:var(--space-6)}.txform-balance-row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0}.txform-balance-label{font-size:var(--text-base);color:var(--color-text-secondary)}.txform-balance-value{font-family:var(--font-display);font-size:var(--text-lg);font-weight:400;color:var(--color-text)}.txform-balance-status{border-top:1px solid var(--color-border);margin-top:var(--space-2);padding-top:var(--space-2)}.txform-balance-indicator{font-size:var(--text-base);font-weight:600}.txform-balanced{color:var(--color-accent-increase)}.txform-unbalanced{color:var(--color-accent-decrease)}.txform-actions{display:flex;gap:var(--space-3)}.txform-cancel{flex:0 0 auto;padding:var(--space-3) var(--space-6);background:var(--color-background);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;transition:all var(--transition-fast);cursor:pointer}.txform-cancel:hover:not(:disabled){background:var(--color-hover);color:var(--color-text)}.txform-cancel:disabled{opacity:.4;cursor:not-allowed}.txform-submit{flex:1;padding:var(--space-3);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;transition:opacity var(--transition-fast)}.txform-submit:hover:not(:disabled){opacity:.9}.txform-submit:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 768px){.txform-lines-header{display:none}}.txform-danger-zone{margin-top:var(--space-8);margin-bottom:var(--space-6);border:1px solid var(--color-accent-decrease);border-radius:var(--radius-md);padding:var(--space-5);background:color-mix(in srgb,var(--color-accent-decrease) 5%,transparent)}.txform-danger-zone h4{color:var(--color-text);font-size:var(--text-md);margin-bottom:var(--space-3)}.txform-danger-content{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.txform-danger-content p{color:var(--color-text-secondary);font-size:var(--text-sm);max-width:600px}.txform-btn-delete{padding:var(--space-2) var(--space-4);background:var(--color-accent-decrease);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast);white-space:nowrap}.txform-btn-delete:hover:not(:disabled){opacity:.9}.txform-btn-delete:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.txform-danger-content{flex-direction:column;align-items:flex-start}}.admin{display:flex;flex-direction:column;gap:var(--space-8)}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.admin-stat-card{background:transparent;border:none;border-top:2px solid var(--color-ink);border-radius:0;padding:var(--space-4) 0;text-align:center}.admin-stat-value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:400;color:var(--color-text)}.admin-stat-label{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:.25rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.admin-section-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;color:var(--color-text);margin-bottom:var(--space-4)}.admin-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.admin-table th,.admin-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.admin-table th{font-weight:700;color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--color-ink)}.admin-table tr:last-child td{border-bottom:none}.admin-table select{padding:.25rem var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer}.admin-table select:disabled{opacity:.5;cursor:not-allowed}.admin-toggle{position:relative;width:40px;height:22px;background:var(--color-border);border:none;border-radius:11px;cursor:pointer;transition:background .2s}.admin-toggle--active{background:var(--color-primary)}.admin-toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.admin-toggle--active:after{transform:translate(18px)}.admin-toggle:disabled{opacity:.5;cursor:not-allowed}.admin-self-badge{font-size:var(--text-xs);color:var(--color-text-secondary);margin-left:var(--space-2);font-style:italic}.admin-error{text-align:center;padding:var(--space-8);color:var(--color-text-secondary)}.admin-retry-button{margin-top:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);transition:opacity var(--transition-fast)}.admin-retry-button:hover{opacity:.9}.reports{display:flex;flex-direction:column;gap:var(--space-8)}.reports-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text)}.reports-form{background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:0;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.reports-form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-4);align-items:end}.reports-form-group{display:flex;flex-direction:column;gap:.375rem}.reports-form-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em}.reports-form-select,.reports-form-input{padding:var(--space-2) .625rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);outline:none;transition:border-color var(--transition-fast)}.reports-form-select:focus,.reports-form-input:focus{border-color:var(--color-ink)}.reports-submit{padding:.625rem var(--space-5);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast);align-self:flex-start}.reports-submit:hover:not(:disabled){opacity:.9}.reports-submit:disabled{opacity:.4;cursor:not-allowed}.reports-section-title{font-size:var(--text-md);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3)}.reports-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.reports-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.reports-table th,.reports-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.reports-table th{font-weight:700;color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--color-ink)}.reports-table tr:last-child td{border-bottom:none}.reports-status{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:500;padding:.1875rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);text-transform:capitalize}.reports-status--queued{color:var(--color-text-secondary)}.reports-status--processing{color:var(--color-primary)}.reports-status--completed{color:var(--color-accent-increase)}.reports-status--failed{color:var(--color-accent-decrease)}.reports-progress{display:flex;align-items:center;gap:var(--space-2)}.reports-progress-bar{flex:1;height:3px;background:var(--color-hover);border-radius:0;overflow:hidden;min-width:60px}.reports-progress-fill{height:100%;background:var(--color-primary);border-radius:0;transition:width .3s}.reports-progress-text{font-size:var(--text-xs);color:var(--color-text-secondary);min-width:32px;text-align:right}.reports-download{padding:.25rem .625rem;background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:opacity var(--transition-fast)}.reports-download:hover{opacity:.9}.reports-error-msg{font-size:var(--text-xs);color:var(--color-accent-decrease)}.reports-empty{text-align:center;padding:var(--space-8);color:var(--color-text-secondary);font-size:var(--text-base)}.reports-type{text-transform:capitalize}@media (max-width: 768px){.reports-form-row{grid-template-columns:1fr}}.settings-page{max-width:640px;padding:0 var(--space-4)}.settings-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;margin-bottom:var(--space-6)}.settings-section{background:var(--color-surface);border-top:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5) var(--space-4);margin-bottom:var(--space-4)}.settings-section-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin-bottom:var(--space-4)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0}.settings-row-info{display:flex;flex-direction:column;gap:.125rem}.settings-row-label{font-weight:500;font-size:var(--text-md)}.settings-row-desc{font-size:var(--text-sm);color:var(--color-text-secondary)}.settings-theme-toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:var(--text-base);white-space:nowrap;transition:border-color var(--transition-fast)}.settings-theme-toggle:hover{border-color:var(--color-border-strong)}.settings-theme-icon{font-size:var(--text-md)}.settings-currency-picker{min-width:220px}.settings-currency-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.375rem;margin-bottom:var(--space-4)}.settings-currency-item{display:flex;align-items:center;gap:var(--space-2);padding:.375rem var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast)}.settings-currency-item:hover{background:var(--color-hover)}.settings-currency-item input[type=checkbox]{accent-color:var(--color-primary)}.settings-save-currencies{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast)}.settings-save-currencies:hover:not(:disabled){opacity:.9}.settings-save-currencies:disabled{opacity:.4;cursor:not-allowed}.contacts-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.contacts-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.contacts-add-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.contacts-add-btn:hover{opacity:.9}.contacts-filters{display:flex;gap:var(--space-6);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.contacts-filter-chip{padding:var(--space-2) 0;border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.contacts-filter-chip:hover{color:var(--color-text)}.contacts-filter-chip-active{color:var(--color-text);border-bottom-color:var(--color-ink)}.contacts-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.contacts-form-input,.contacts-form-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--text-base)}.contacts-form-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.contacts-form-cancel{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer}.contacts-form-submit{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;transition:opacity var(--transition-fast)}.contacts-form-submit:hover{opacity:.9}.contacts-list{display:flex;flex-direction:column;gap:var(--space-2)}.contacts-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-left:3px solid var(--color-border);border-radius:0;transition:border-color var(--transition-fast)}.contacts-card:hover{border-left-color:var(--color-primary)}.contacts-card-info{display:flex;flex-direction:column;gap:.125rem}.contacts-card-name{font-weight:500}.contacts-card-category{font-size:var(--text-xs);color:var(--color-primary)}.contacts-card-notes{font-size:var(--text-xs);color:var(--color-text-secondary)}.contacts-card-actions{display:flex;gap:var(--space-2)}.contacts-card-edit,.contacts-card-delete{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-xs);transition:border-color var(--transition-fast)}.contacts-card-delete{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease)}.contacts-loading,.contacts-empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-8)}.exchange-rates-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.exchange-rates-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.exchange-rates-add-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.exchange-rates-add-btn:hover{opacity:.9}.exchange-rates-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.exchange-rates-form-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-3)}.exchange-rates-form-field{flex:1;display:flex;flex-direction:column;gap:.25rem}.exchange-rates-form-field label{font-size:var(--text-sm);font-weight:500}.exchange-rates-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--text-base)}.exchange-rates-form-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.exchange-rates-cancel{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer}.exchange-rates-submit{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;transition:opacity var(--transition-fast)}.exchange-rates-submit:hover{opacity:.9}.exchange-rates-converter{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.exchange-rates-converter-title{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-3)}.exchange-rates-converter-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.exchange-rates-converter-arrow{font-size:var(--text-xl)}.exchange-rates-converter-amount{max-width:120px}.exchange-rates-convert-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;transition:opacity var(--transition-fast)}.exchange-rates-convert-btn:hover{opacity:.9}.exchange-rates-convert-result{margin-top:var(--space-2);font-size:var(--text-base)}.exchange-rates-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.exchange-rates-table th,.exchange-rates-table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);font-size:var(--text-base)}.exchange-rates-table th{font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);border-bottom:2px solid var(--color-ink)}.exchange-rates-delete-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--color-accent-decrease);border-radius:var(--radius-sm);background:none;color:var(--color-accent-decrease);cursor:pointer;font-size:var(--text-xs)}.exchange-rates-delete-btn:disabled{opacity:.5;cursor:not-allowed}.exchange-rates-lock-badge{display:inline-block;margin-right:var(--space-2);padding:.1rem .45rem;border:1px solid color-mix(in srgb,var(--color-accent-warning) 60%,var(--color-border));border-radius:var(--radius-sm);color:var(--color-accent-warning);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.exchange-rates-loading,.exchange-rates-empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-8)}.budget-progress-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.budget-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.budget-progress-name{font-weight:600;font-size:var(--text-md)}.budget-progress-period{font-size:var(--text-xs);color:var(--color-text-secondary)}.budget-progress-classification,.budget-progress-account{display:block;font-size:var(--text-xs);color:var(--color-primary);margin-bottom:var(--space-2)}.budget-progress-bar-container{height:3px;background:var(--color-border);border-radius:0;overflow:hidden;margin-bottom:var(--space-2)}.budget-progress-bar{height:100%;background:var(--color-primary);border-radius:0;transition:width .3s ease}.budget-progress-bar-over{background:var(--color-accent-decrease)}.budget-progress-stats{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-secondary)}.budget-progress-over{color:var(--color-accent-decrease);font-weight:500}.budget-progress-percentage{text-align:right;font-size:var(--text-sm);font-weight:600;margin-top:.25rem}.budget-form{display:flex;flex-direction:column;gap:var(--space-3)}.budget-form-error{color:var(--color-accent-decrease);font-size:var(--text-base);margin-bottom:.25rem}.budget-form-field{display:flex;flex-direction:column;gap:.25rem;flex:1}.budget-form-field label{font-size:var(--text-sm);font-weight:500}.budget-form-field input,.budget-form-field select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base)}.budget-form-row{display:flex;gap:var(--space-4)}.budget-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.budget-form-actions button{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer}.budget-form-submit{background:var(--color-primary)!important;color:var(--color-primary-text)!important;border-color:var(--color-primary)!important}.budgets-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.budgets-header-actions{display:flex;gap:var(--space-2)}.budgets-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.budgets-add-btn,.budgets-group-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.budgets-add-btn:hover,.budgets-group-btn:hover{opacity:.9}.budgets-group-btn{background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-primary)}.budgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-4)}.budgets-card-wrapper{position:relative}.budgets-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.budgets-edit-btn,.budgets-delete-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);transition:border-color var(--transition-fast)}.budgets-replicate-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);cursor:pointer;font-size:var(--text-xs);transition:opacity var(--transition-fast)}.budgets-delete-btn{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease)}.budgets-source-label{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:.25rem;font-style:italic}.budgets-loading,.budgets-empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-8)}.budgets-group-section{margin-bottom:var(--space-6)}.budgets-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-background));border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;margin-bottom:var(--space-3);-webkit-user-select:none;user-select:none}.budgets-group-toggle{font-size:var(--text-xs);color:var(--color-text-secondary)}.budgets-group-name{font-weight:600;font-size:var(--text-md)}.budgets-group-totals{font-size:var(--text-sm);color:var(--color-text-secondary);margin-left:auto}.budgets-group-actions{display:flex;gap:.25rem;margin-left:var(--space-3)}.budgets-ungrouped-title{font-size:var(--text-md);font-weight:600;color:var(--color-text-secondary);margin:var(--space-6) 0 var(--space-3)}.budgets-group-form{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md)}.budgets-group-form input{padding:.375rem var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--color-surface);color:var(--color-text)}.budgets-group-form input:first-child{flex:1}.budgets-card-inactive{opacity:.55}.budgets-inactive-badge{display:inline-block;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.125rem var(--space-2);border-radius:var(--radius-sm);background:var(--color-hover);color:var(--color-text-secondary);margin-bottom:.375rem}.budgets-group-inactive{opacity:.55}.budgets-group-empty{color:var(--color-text-secondary);font-size:var(--text-sm);font-style:italic;padding:var(--space-4);text-align:center}.category-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0e0d99;display:flex;align-items:center;justify-content:center;z-index:100}.category-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);width:90%;max-width:480px;box-shadow:0 8px 32px #00000026}.category-modal-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;margin-bottom:var(--space-4)}.category-modal-field{margin-bottom:var(--space-3)}.category-modal-label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:.25rem;color:var(--color-text-secondary)}.category-modal-input,.category-modal-select,.category-modal-textarea{width:100%;padding:var(--space-2) .625rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--color-background);color:var(--color-text)}.category-modal-textarea{min-height:60px;resize:vertical}.category-modal-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-4)}.category-modal-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.category-modal-btn-primary{background:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.category-modal-btn:disabled{opacity:.4;cursor:not-allowed}.categories-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.categories-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.categories-header-actions{display:flex;gap:var(--space-2)}.categories-add-btn,.categories-init-btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.categories-add-btn{background:var(--color-primary);color:var(--color-primary-text)}.categories-add-btn:hover{opacity:.9}.categories-init-btn{background:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-primary)}.categories-tabs{display:flex;gap:var(--space-6);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.categories-tab{padding:var(--space-2) 0;border:none;background:none;cursor:pointer;font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;transition:all var(--transition-fast)}.categories-tab-active{color:var(--color-text);border-bottom-color:var(--color-ink)}.categories-tree{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.categories-node{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--text-base)}.categories-node:last-child{border-bottom:none}.categories-node-name{flex:1;color:var(--color-text)}.categories-node-desc{font-size:var(--text-xs);color:var(--color-text-secondary);margin-left:var(--space-2)}.categories-node-actions{display:flex;gap:.375rem}.categories-node-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);transition:border-color var(--transition-fast)}.categories-node-btn-delete{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease)}.categories-empty{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-text-secondary)}.categories-empty-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-2);color:var(--color-text)}.categories-empty-desc{font-size:var(--text-base);margin-bottom:var(--space-6)}.categories-empty-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.categories-loading{text-align:center;padding:var(--space-8);color:var(--color-text-secondary)}.tags-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.tags-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400}.tags-add-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.tags-add-btn:hover{opacity:.9}.tags-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.tags-form-input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--text-base)}.tags-color-picker{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.tags-color-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.tags-color-swatches{display:flex;gap:.25rem}.tags-color-swatch{width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.tags-color-swatch-active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text)}.tags-color-swatch-none{background:var(--color-surface)!important;border:2px dashed var(--color-border)}.tags-color-custom{width:1.5rem;height:1.5rem;padding:0;border:none;cursor:pointer;border-radius:var(--radius-sm)}.tags-form-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.tags-form-cancel{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer}.tags-form-submit{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;transition:opacity var(--transition-fast)}.tags-form-submit:hover{opacity:.9}.tags-list{display:flex;flex-direction:column;gap:var(--space-2)}.tags-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-left:3px solid var(--color-border);border-radius:0;transition:border-color var(--transition-fast)}.tags-card:hover{border-left-color:var(--color-primary)}.tags-card-info{display:flex;align-items:center}.tags-card-chip{display:inline-block;padding:.25rem var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;background:var(--color-primary);color:var(--color-primary-text)}.tags-card-actions{display:flex;gap:var(--space-2)}.tags-card-edit,.tags-card-delete{padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-xs);transition:border-color var(--transition-fast)}.tags-card-delete{color:var(--color-accent-decrease);border-color:var(--color-accent-decrease)}.tags-loading,.tags-empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-8)}.transactions-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4)}.transactions-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text)}.transactions-new-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:600;transition:opacity var(--transition-fast)}.transactions-new-btn:hover{opacity:.9}.transactions-list{border-top:1px solid var(--color-border);padding:0 var(--space-4)}.transactions-loading,.transactions-empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-8)}.transactions-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-4)}.transactions-page-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:var(--text-sm);font-weight:500;letter-spacing:.04em;color:var(--color-text);transition:border-color var(--transition-fast)}.transactions-page-btn:hover:not(:disabled){border-color:var(--color-border-strong)}.transactions-page-btn:disabled{opacity:.4;cursor:not-allowed}.transactions-page-info{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.02em}.portfolio-status-bar{display:flex;gap:var(--space-8);padding:var(--space-6) 0;border-bottom:1px solid var(--inv-border)}.portfolio-stat-item{display:flex;flex-direction:column;gap:var(--space-1)}.portfolio-stat-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary)}.portfolio-stat-value{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);line-height:1.1}.portfolio-stat-primary{font-size:var(--text-3xl)}@media (max-width: 768px){.portfolio-status-bar{flex-wrap:wrap;gap:var(--space-4)}.portfolio-stat-value{font-size:var(--text-xl)}.portfolio-stat-primary{font-size:var(--text-2xl)}}.brokerage-strip{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--inv-border)}.brokerage-strip-chips{display:flex;gap:var(--space-2);overflow-x:auto;flex:1;scrollbar-width:none}.brokerage-strip-chips::-webkit-scrollbar{display:none}.brokerage-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--inv-border);border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.brokerage-chip:hover{color:var(--color-text);border-color:var(--color-text-tertiary)}.brokerage-chip-active{color:var(--color-text);border-color:var(--color-text);background:var(--inv-bg-row-hover)}.brokerage-chip-invite{border-color:var(--color-primary);color:var(--color-primary)}.brokerage-chip-invite:hover{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.brokerage-chip-balance{font-family:var(--inv-font-ticker);font-size:var(--text-xs);color:var(--color-text-tertiary)}.brokerage-manage-btn{padding:var(--space-2) var(--space-3);border:none;background:transparent;color:var(--color-text-tertiary);font-family:var(--inv-font-ticker);font-size:var(--text-xs);font-weight:500;letter-spacing:.08em;cursor:pointer;transition:color var(--transition-fast);white-space:nowrap}.brokerage-manage-btn:hover{color:var(--color-text)}.position-row{border-bottom:1px solid var(--inv-border);transition:background var(--transition-fast)}.position-row:hover{background:var(--inv-bg-row-hover)}.position-row-clickable{cursor:pointer}.position-row-closed{opacity:.5}.position-cell{padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;vertical-align:middle}.position-cell-ticker{display:flex;align-items:center;gap:var(--space-2)}.ticker-display{font-family:var(--inv-font-ticker);font-size:var(--text-base);font-weight:600;color:var(--color-text);letter-spacing:.02em}.position-asset-badge{font-family:var(--font-body);font-size:.5625rem;font-weight:500;letter-spacing:.08em;color:var(--color-text-tertiary);padding:1px var(--space-1);border:1px solid var(--inv-border);border-radius:var(--radius-xs)}.position-strategy-badge{font-family:var(--font-body);font-size:.5rem;font-weight:500;letter-spacing:.06em;color:var(--color-primary);padding:1px var(--space-1);border:1px solid var(--color-primary);border-radius:var(--radius-xs);opacity:.7}.position-current-price{color:var(--color-text);font-family:var(--inv-font-ticker)}.position-cell-side{font-family:var(--inv-font-ticker);font-size:var(--text-xs);font-weight:500}.position-side-long{color:var(--inv-green-dim)}.position-side-short{color:var(--inv-red-dim)}.position-cell-qty{font-family:var(--inv-font-ticker);font-size:var(--text-sm)}.position-cell-number{font-family:var(--font-display);font-size:var(--text-sm);text-align:right}.position-cell-pnl{text-align:right}.pnl-display{font-family:var(--inv-font-ticker);font-size:var(--text-sm);font-weight:500}.pnl-positive{color:var(--inv-green)}.pnl-negative{color:var(--inv-red)}.pnl-neutral{color:var(--color-text-tertiary)}.position-cell-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.position-action-btn{padding:var(--space-1) var(--space-2);border:none;background:transparent;font-family:var(--inv-font-ticker);font-size:var(--text-xs);font-weight:500;letter-spacing:.06em;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.position-action-btn:hover{color:var(--color-text)}.position-action-close:hover{color:var(--inv-red)}.position-action-div:hover{color:var(--inv-green)}.grouped-row:hover{background:var(--inv-bg-row-hover)}.grouped-expand-icon{font-size:.5rem;color:var(--color-text-tertiary);transition:color var(--transition-fast)}.grouped-row:hover .grouped-expand-icon{color:var(--color-text)}.grouped-count-badge{font-family:var(--inv-font-ticker);font-size:.5625rem;font-weight:500;color:var(--color-text-tertiary);padding:1px var(--space-1);border:1px solid var(--inv-border);border-radius:var(--radius-xs);margin-left:var(--space-1)}.positions-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--inv-border);border-radius:var(--radius-xs)}.positions-table{width:100%;border-collapse:collapse}.positions-header-row{border-bottom:1px solid var(--inv-border)}.positions-header{padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:.625rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);text-align:left;white-space:nowrap}.positions-header-right{text-align:right}.positions-header-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.positions-header-sortable:hover{color:var(--color-text-secondary)}.positions-empty{display:flex;justify-content:center;align-items:center;padding:var(--space-16) 0}.positions-empty-text{font-family:var(--inv-font-ticker);font-size:var(--text-sm);font-weight:400;letter-spacing:.15em;color:var(--color-text-tertiary)}.inv-modal-form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) var(--space-6) var(--space-6)}.inv-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.inv-modal-reopen{margin-right:auto;padding:var(--space-2) var(--space-4);border:1px solid var(--color-accent-warning);border-radius:var(--radius-sm);background:transparent;color:var(--color-accent-warning);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.inv-modal-reopen:hover:not(:disabled){background:var(--color-accent-warning);color:#fff}.inv-modal-reopen:disabled{opacity:.5;cursor:not-allowed}.inv-modal-cancel{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.inv-modal-cancel:hover{border-color:var(--color-text-tertiary);color:var(--color-text)}.inv-modal-submit{padding:var(--space-2) var(--space-5);border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-text);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.inv-modal-submit:hover{background:var(--color-primary-hover)}.inv-modal-submit:disabled{opacity:.5;cursor:not-allowed}.inv-modal-row{display:flex;gap:var(--space-4)}.inv-modal-row>*{flex:1}.position-detail-panel-modal .modal-content{max-width:420px}.position-detail-panel{display:flex;flex-direction:column;gap:var(--space-4)}.position-detail-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.position-detail-header .position-detail-ticker{font-size:1.25rem;font-weight:700}.position-detail-section-title{font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;color:var(--color-text-tertiary);text-transform:uppercase;margin:0 0 var(--space-2)}.position-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2) var(--space-4)}.position-detail-metric,.position-detail-pnl-row,.position-detail-meta-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.position-detail-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.position-detail-value{font-family:var(--inv-font-ticker);font-size:var(--text-sm)}.position-detail-pnl-rows,.position-detail-meta-rows{display:flex;flex-direction:column;gap:var(--space-1)}.position-detail-pnl-row.position-detail-net{font-weight:700;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.position-detail-tabs{display:flex;gap:var(--space-1);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.position-detail-tab{padding:var(--space-1) var(--space-3);border:none;background:transparent;color:var(--color-text-secondary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-sm)}.position-detail-tab:hover{color:var(--color-text)}.position-detail-tab-active{color:var(--color-text);background:var(--inv-bg-row-hover)}.position-detail-dividends{padding-top:var(--space-2)}.position-detail-dividends-table-wrap{max-height:220px;overflow-y:auto;margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.position-detail-dividends-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.position-detail-dividends-th,.position-detail-dividends-td-num{padding:var(--space-1) var(--space-2);text-align:left;border-bottom:1px solid var(--color-border)}.position-detail-dividends-th-num,.position-detail-dividends-td-num{text-align:right}.position-detail-dividends-th{color:var(--color-text-tertiary);font-weight:600;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase}.position-detail-dividend-row td:first-child{min-width:100px;color:var(--color-text-secondary)}.position-detail-dividend-notes{color:var(--color-text-tertiary);font-size:var(--text-xs);max-width:120px;overflow:hidden;text-overflow:ellipsis}.position-detail-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.position-action-reopen{color:var(--inv-green)}.position-action-delete{color:var(--inv-red);margin-left:auto}.position-detail-dividends-th-actions,.position-detail-dividends-td-actions{width:48px;text-align:center}.position-detail-row-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border:none;border-radius:var(--radius-sm);cursor:pointer;background:var(--color-bg-secondary);color:var(--color-text-secondary)}.position-detail-row-btn:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.position-detail-row-btn-delete:hover:not(:disabled){background:var(--inv-red);color:#fff}.position-detail-row-btn:disabled{opacity:.6;cursor:not-allowed}.strategy-summary-section{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--inv-border)}.strategy-summary-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;color:var(--color-text-tertiary);text-transform:uppercase;margin:0 0 var(--space-3)}.strategy-summary-wrap{overflow-x:auto}.strategy-summary-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.strategy-summary-th,.strategy-summary-td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border)}.strategy-summary-th-num,.strategy-summary-td-num{text-align:right}.strategy-summary-th{color:var(--color-text-tertiary);font-weight:500;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase}.strategy-summary-td-name{font-weight:500;color:var(--color-text)}.strategy-summary-td-num{font-family:var(--inv-font-ticker)}.strategy-summary-td-pnl{white-space:nowrap}.strategy-summary-row:hover{background:var(--inv-bg-row-hover)}.investments-page{max-width:1200px;margin:0 auto;padding:var(--space-6) var(--space-8)}.investments-header{display:flex;justify-content:space-between;align-items:center}.investments-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;color:var(--color-text);margin:0}.investments-header-actions{display:flex;gap:var(--space-2)}.investments-action-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--inv-border);border-radius:var(--radius-xs);background:transparent;font-family:var(--inv-font-ticker);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.investments-action-btn:hover{color:var(--color-text);border-color:var(--color-text-tertiary)}.investments-action-buy:hover{color:var(--inv-green);border-color:var(--inv-green-dim)}.investments-action-short:hover{color:var(--inv-red);border-color:var(--inv-red-dim)}.investments-filters{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) 0}.investments-filter-btn{padding:var(--space-1) var(--space-3);border:none;border-bottom:2px solid transparent;background:transparent;font-family:var(--inv-font-ticker);font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.investments-filter-btn:hover{color:var(--color-text-secondary)}.investments-filter-active{color:var(--color-text);border-bottom-color:var(--color-text)}.investments-loading{color:var(--color-text-tertiary);font-family:var(--inv-font-ticker);font-size:var(--text-sm);letter-spacing:.1em;text-align:center;padding:var(--space-16) 0}.brokerages-manage-panel{margin-top:var(--space-6);border:1px solid var(--inv-border);border-radius:var(--radius-xs)}.brokerages-manage-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--inv-border)}.brokerages-manage-title{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin:0}.brokerages-manage-list{display:flex;flex-direction:column}.brokerages-manage-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--inv-border);transition:background var(--transition-fast)}.brokerages-manage-item:last-child{border-bottom:none}.brokerages-manage-item:hover{background:var(--inv-bg-row-hover)}.brokerages-manage-info{display:flex;align-items:center;gap:var(--space-4)}.brokerages-manage-name{font-family:var(--font-body);font-size:var(--text-base);font-weight:500;color:var(--color-text)}.brokerages-manage-inst{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-tertiary)}.brokerages-manage-cash{font-family:var(--inv-font-ticker);font-size:var(--text-sm);color:var(--color-text-secondary)}.brokerages-manage-actions{display:flex;gap:var(--space-2)}.brokerages-manage-linked{font-family:var(--inv-font-ticker);font-size:.5625rem;font-weight:600;letter-spacing:.08em;color:var(--inv-green-dim);padding:1px var(--space-2);border:1px solid var(--inv-green-dim);border-radius:var(--radius-xs)}.fifo-close-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.fifo-close-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);min-width:360px;max-width:480px}@media (max-width: 768px){.investments-page{padding:var(--space-4)}.brokerages-manage-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.brokerages-manage-actions{flex-wrap:wrap}.investments-filters{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.closings-page{display:grid;gap:var(--space-6);padding:var(--space-4)}.closings-header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:linear-gradient(120deg,color-mix(in srgb,var(--color-primary) 8%,transparent),transparent 45%),linear-gradient(180deg,var(--color-surface),color-mix(in srgb,var(--color-surface) 70%,var(--color-background)))}.closings-kicker{margin:0;letter-spacing:.08em;text-transform:uppercase;font-size:var(--text-xs);color:var(--color-text-secondary)}.closings-title{margin:var(--space-2) 0 0;font-family:var(--font-display);font-size:var(--text-3xl);line-height:1}.closings-new-button{text-decoration:none;border:1px solid color-mix(in srgb,var(--color-primary) 45%,var(--color-border));color:var(--color-primary-text);background:var(--color-primary);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-weight:600;transition:transform var(--transition-fast),background-color var(--transition-fast)}.closings-new-button:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.closings-state{margin:0;padding:var(--space-6);border-radius:var(--radius-lg);border:1px dashed var(--color-border);color:var(--color-text-secondary);background:var(--color-surface)}.closings-state-error{border-style:solid;border-color:color-mix(in srgb,var(--color-accent-decrease) 45%,var(--color-border))}.closings-retry{margin-top:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.closings-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:auto;background:var(--color-surface)}.closings-table{width:100%;border-collapse:collapse}.closings-table th,.closings-table td{text-align:left;padding:var(--space-4);border-bottom:1px solid var(--color-border);white-space:nowrap}.closings-table th{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.04em;text-transform:uppercase}.closings-row-latest{background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.closings-net-positive{color:var(--color-accent-increase);font-weight:700}.closings-net-negative{color:var(--color-accent-decrease);font-weight:700}.closings-rollback{border:1px solid color-mix(in srgb,var(--color-accent-warning) 35%,var(--color-border));background:color-mix(in srgb,var(--color-accent-warning) 12%,var(--color-surface));color:var(--color-text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600}.closings-action-muted{color:var(--color-text-tertiary);font-size:var(--text-sm)}@media (max-width: 840px){.closings-header{align-items:start;flex-direction:column}.closings-title{font-size:var(--text-2xl)}.closings-table th,.closings-table td{padding:var(--space-3)}}.closing-wizard{display:grid;gap:var(--space-5);padding:var(--space-4)}.closing-wizard-header{border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);background:radial-gradient(circle at top right,color-mix(in srgb,var(--color-accent-warning) 18%,transparent),transparent 52%),radial-gradient(circle at bottom left,color-mix(in srgb,var(--color-accent-info) 18%,transparent),transparent 48%),var(--color-surface)}.closing-wizard-kicker{margin:0;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary)}.closing-wizard-title{margin:var(--space-2) 0 0;font-family:var(--font-display);font-size:var(--text-3xl);line-height:1}.closing-wizard-subtitle{margin:var(--space-2) 0 0;color:var(--color-text-secondary)}.closing-wizard-steps{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.closing-wizard-steps li{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);color:var(--color-text-secondary);background:var(--color-surface)}.closing-wizard-steps .step-active{color:var(--color-text);border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))}.closing-panel{border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);display:grid;gap:var(--space-4);background:var(--color-surface)}.closing-panel-row{display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:var(--space-3)}.closing-panel-row input,.closing-panel-row button,.closing-panel select,.closing-panel .closing-rate-row input,.closing-panel .closing-rate-row select,.closing-actions button{min-height:40px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:0 var(--space-3);background:var(--color-background);color:var(--color-text)}.closing-panel-row button,.closing-actions button:last-child,.closing-rate-actions button:last-child{background:var(--color-primary);color:var(--color-primary-text);border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border))}.closing-error{margin:0;color:var(--color-accent-decrease)}.closing-help,.closing-empty{margin:0;color:var(--color-text-secondary)}.closing-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.closing-metrics div{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:color-mix(in srgb,var(--color-surface) 70%,var(--color-background))}.closing-metrics span{display:block;color:var(--color-text-secondary);font-size:var(--text-sm)}.closing-preview-list table{width:100%;border-collapse:collapse}.closing-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.closing-preview-heading h3{margin:0}.closing-preview-heading button{min-height:36px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:0 var(--space-3);background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));color:var(--color-text)}.closing-balance-group{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-surface) 75%,var(--color-background));overflow:hidden;margin-bottom:var(--space-3)}.closing-balance-group-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border-bottom:1px solid var(--color-border)}.closing-balance-group-header h4{margin:0;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase}.closing-balance-group-header span{font-size:var(--text-sm);color:var(--color-text-secondary)}.closing-preview-list th,.closing-preview-list td{text-align:left;border-bottom:1px solid var(--color-border);padding:var(--space-3)}.closing-mono{font-family:var(--inv-font-ticker);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.closing-revaluation-box{border:1px solid color-mix(in srgb,var(--color-accent-warning) 45%,var(--color-border));border-radius:var(--radius-lg);padding:var(--space-4);background:color-mix(in srgb,var(--color-accent-warning) 10%,var(--color-surface))}.closing-revaluation-box h3,.closing-revaluation-box p{margin-top:0}.closing-rate-list{display:grid;gap:var(--space-2)}.closing-rate-row{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:var(--space-2);align-items:center}.closing-rate-row label{color:var(--color-text-secondary);font-size:var(--text-sm)}.closing-rate-actions,.closing-actions{display:flex;gap:var(--space-3);justify-content:flex-end;align-items:center}.closing-actions{justify-content:space-between}.closing-rate-actions{margin-top:var(--space-3);flex-wrap:wrap}.closing-rate-actions button{min-width:200px;flex:0 1 auto}.closing-warning{margin:0;border-left:3px solid var(--color-accent-warning);padding:var(--space-3);background:color-mix(in srgb,var(--color-accent-warning) 8%,var(--color-surface))}.closing-summary{margin:0;display:grid;gap:var(--space-3)}.closing-summary div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.closing-summary dt{color:var(--color-text-secondary)}.closing-summary dd{margin:0;font-weight:700}@media (max-width: 900px){.closing-wizard-steps,.closing-panel-row,.closing-metrics,.closing-rate-row{grid-template-columns:1fr}.closing-preview-heading{align-items:stretch;flex-direction:column}.closing-actions,.closing-rate-actions{flex-direction:column}.closing-rate-actions button{min-width:0;width:100%;white-space:normal}}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/CrimsonPro-Light.woff2) format("woff2"),url(/fonts/CrimsonPro-Light.woff) format("woff")}@font-face{font-family:Crimson Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/CrimsonPro-SemiBold.woff2) format("woff2"),url(/fonts/CrimsonPro-SemiBold.woff) format("woff")}:root,:root[data-theme=light]{--color-background: #F5F0EB;--color-surface: #FFFFFF;--color-text: #1A1A1A;--color-text-secondary: #6B6560;--color-text-tertiary: #9C958F;--color-border: #E2DCD6;--color-border-strong: #C8C0B8;--color-hover: #EDE8E3;--color-primary: #10B981;--color-primary-hover: #0D9668;--color-primary-text: #FFFFFF;--color-accent-increase: #16A34A;--color-accent-decrease: #DC2626;--color-accent-warning: #D97706;--color-accent-info: #2563EB;--color-ink: #1A1A1A;--color-neutral: #B8B0A8;--color-icon: #1A1A1A;--font-display: "Instrument Serif", Georgia, "Times New Roman", serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-wordmark-vanta: "Crimson Pro", Georgia, serif;--font-wordmark-tracker: "Crimson Pro", Georgia, serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--inv-bg-deep: #F0ECE7;--inv-bg-panel: #F5F0EB;--inv-bg-row-hover: #EDE8E3;--inv-border: #E2DCD6;--inv-green: #16A34A;--inv-green-dim: #15803D;--inv-red: #DC2626;--inv-red-dim: #B91C1C;--inv-amber: #D97706;--inv-font-ticker: "JetBrains Mono", "SF Mono", "Fira Code", monospace}:root[data-theme=dark]{--color-background: #0F0E0D;--color-surface: #1C1B19;--color-text: #E8E4DF;--color-text-secondary: #A09890;--color-text-tertiary: #6B6560;--color-border: #2E2C28;--color-border-strong: #3D3A35;--color-hover: #252320;--color-primary: #34D399;--color-primary-hover: #42FFB4;--color-primary-text: #0F0E0D;--color-accent-increase: #4ADE80;--color-accent-decrease: #F87171;--color-accent-warning: #FBBF24;--color-accent-info: #60A5FA;--color-ink: #E8E4DF;--color-neutral: #4A4540;--color-icon: #E8E4DF;--font-display: "Instrument Serif", Georgia, "Times New Roman", serif;--font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-wordmark-vanta: "Crimson Pro", Georgia, serif;--font-wordmark-tracker: "Crimson Pro", Georgia, serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--inv-bg-deep: #050505;--inv-bg-panel: #0A0A0A;--inv-bg-row-hover: #111111;--inv-border: #1A1A1A;--inv-green: #00FF88;--inv-green-dim: #00CC6A;--inv-red: #FF3B5C;--inv-red-dim: #CC2E49;--inv-amber: #FFB800;--inv-font-ticker: "JetBrains Mono", "SF Mono", "Fira Code", monospace}:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,:root[data-theme=dark] input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.85;cursor:pointer}body{background-color:var(--color-background);color:var(--color-text);font-family:var(--font-body);min-height:100vh;margin:0;-webkit-font-smoothing:antialiased}#root{min-height:100vh}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{background-color:var(--color-background);color:var(--color-text);font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;background:none;padding:0}input,select,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;font-family:var(--font-display)}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes balance-reveal{0%{opacity:0;transform:translateY(4px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.balance-summary-card{animation:balance-reveal .4s ease both}.balance-summary-card:nth-child(1){animation-delay:0ms}.balance-summary-card:nth-child(2){animation-delay:60ms}.balance-summary-card:nth-child(3){animation-delay:.12s}.balance-summary-card:nth-child(4){animation-delay:.18s}.balance-summary-card:nth-child(5){animation-delay:.24s}.balance-summary-card:nth-child(6){animation-delay:.3s}@keyframes row-slide-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.transaction-row{animation:row-slide-in .3s ease both;animation-delay:calc(var(--row-index, 0) * 40ms)}@keyframes card-enter{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.account-card{animation:card-enter .35s ease both}@keyframes editorial-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dashboard,.accounts-page,.transactions-page,.account-detail,.budgets-page,.categories-page,.contacts-page,.tags-page,.exchange-rates-page,.settings-page,.reports,.admin,.txform,.investments-page{animation:editorial-fade-up .3s ease both}@keyframes rule-sweep{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.dashboard-section-header{transform-origin:left;animation:rule-sweep .5s ease both}@keyframes sync-pulse{0%{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent)}to{border-color:var(--color-border);background:transparent}}.sync-pulse{animation:sync-pulse .6s ease-out both}@keyframes position-row-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.position-row{animation:position-row-enter .25s ease both;animation-delay:calc(var(--row-index, 0) * 30ms)}@keyframes chip-pop-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.brokerage-chip{animation:chip-pop-in .2s ease both;animation-delay:calc(var(--chip-index, 0) * 50ms)}.portfolio-stat-item:nth-child(1){animation:balance-reveal .4s ease both;animation-delay:0ms}.portfolio-stat-item:nth-child(2){animation:balance-reveal .4s ease both;animation-delay:60ms}.portfolio-stat-item:nth-child(3){animation:balance-reveal .4s ease both;animation-delay:.12s}.portfolio-stat-item:nth-child(4){animation:balance-reveal .4s ease both;animation-delay:.18s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
