.type-toggle{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.type-button{flex:1;padding:10px;border:1px solid var(--color-border);background:transparent;border-radius:var(--radius-md);font-family:var(--font-sans);font-weight:500;color:var(--color-text-secondary);cursor:pointer}.type-button.active{background:var(--color-bg);border-color:currentColor}.type-button.active.expense-bg{color:var(--color-expense)}.type-button.active.income-bg{color:var(--color-income)}.amount-input{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.amount-input:focus-within{border-color:var(--color-primary)}.currency-symbol{font-size:var(--font-size-lg);color:var(--color-text-tertiary);font-weight:600}.amount-input .form-input{border:none;background:transparent;font-size:var(--font-size-lg);font-weight:600;padding:0}.category-selection-area{min-height:120px}.category-back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 0;margin-bottom:12px;background:transparent;border:none;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer}.category-back-btn:hover{color:var(--color-text)}.category-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.category-button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.category-button:hover{border-color:var(--color-text-tertiary);color:var(--color-text)}.category-button.active{background:var(--category-color);border-color:var(--category-color)!important;color:#fff!important}.form-actions button{flex:1}.input-panel{position:fixed;bottom:20px;left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:600px;z-index:1000;font-family:var(--font-sans)}.input-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);cursor:text}.input-currency{font-size:18px;font-weight:600;color:var(--color-text-tertiary)}.input-amount{flex:1;font-size:16px;font-weight:500;background:transparent;border:none;color:var(--color-text);outline:none;font-family:inherit}.input-amount::placeholder{color:var(--color-text-tertiary);font-weight:400}.input-save{padding:8px 16px;background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.input-save:disabled{opacity:.3;cursor:not-allowed}.input-panel-expanded{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:16px;margin-bottom:-1px}.input-panel.expanded .input-bar{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.input-type-toggle{display:flex;gap:8px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.input-type-btn{flex:1;padding:10px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--color-text-tertiary);cursor:pointer;font-family:inherit}.input-type-btn.active{background:var(--color-bg);border-color:currentColor;color:var(--color-text)}.input-type-btn.active.expense{color:var(--color-expense)}.input-type-btn.active.income{color:var(--color-income)}.input-categories{margin-bottom:16px}.category-back-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 0;margin-bottom:12px;background:transparent;border:none;font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit}.category-chips{display:flex;flex-wrap:wrap;gap:8px}.category-chip{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;font-family:inherit}.category-chip.selected{background:var(--chip-color);border-color:var(--chip-color);color:#fff}.input-extras{display:flex;gap:10px}.input-account{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:8px 32px 8px 12px;background:var(--color-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);cursor:pointer;font-family:inherit;min-width:100px}.input-account:focus{outline:none;border-color:var(--color-primary)}.input-note{flex:1;padding:8px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);font-family:inherit}.input-note:focus{outline:none;border-color:var(--color-primary)}.input-note::placeholder{color:var(--color-text-tertiary)}.context-menu{position:fixed;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px;z-index:1000;min-width:140px}.context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-sm);text-align:left;cursor:pointer;border-radius:var(--radius-sm)}.context-menu-item:hover{background:var(--color-bg)}.context-menu-item.delete:hover{color:var(--color-danger)}.context-menu-overlay{position:fixed;inset:0;z-index:999;background:transparent}.empty-state{text-align:center;padding:var(--spacing-xl) 0;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.timeline-day{margin-bottom:var(--spacing-lg)}.date-header{margin-bottom:var(--spacing-sm);padding-left:var(--spacing-xs)}.date-label{font-family:var(--font-header);font-weight:500;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.transactions-list{display:flex;flex-direction:column;gap:8px}.transaction-card{display:flex;align-items:center;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-left:3px solid var(--category-color, var(--color-text-tertiary));border-radius:var(--radius-md);cursor:context-menu}.transaction-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md)}.transaction-info{flex:1;overflow:hidden}.transaction-category{font-family:var(--font-header);font-weight:500;color:var(--color-text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex;gap:8px}.transaction-amount{font-weight:600;font-size:var(--font-size-base)}.transaction-amount .income{color:var(--color-income)}.transaction-amount .expense{color:var(--color-expense)}.accounts-header{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-md)}.balance-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.total-balance-card{background:var(--color-bg-secondary);border:1px solid var(--color-primary);border-radius:var(--radius-md);padding:var(--spacing-md);position:relative;overflow:hidden}.total-balance{margin-top:var(--spacing-sm);display:flex;align-items:baseline;gap:4px}.total-balance .currency{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.total-balance .amount{font-size:24px;font-weight:700;color:var(--color-primary);text-shadow:0 0 10px rgba(0,255,157,.3)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.accounts-list{display:grid;gap:var(--spacing-md)}.account-card{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.account-main{display:flex;align-items:center;flex:1}.account-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-right:var(--spacing-md);border:1px solid rgba(255,255,255,.1)}.account-icon span{display:flex;align-items:center;justify-content:center}.account-info{flex:1}.account-name{font-weight:600;margin-bottom:2px}.account-type{font-size:var(--font-size-xs);text-transform:uppercase}.account-balance{font-weight:700;font-size:var(--font-size-lg);color:var(--color-text);margin-right:var(--spacing-md)}.account-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.account-card:hover .account-actions{opacity:1}.icon-picker{display:flex;gap:8px;flex-wrap:wrap}.icon-option{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer}.icon-option.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-bg)}.statistics{padding-bottom:var(--spacing-xl)}.summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.summary-card{background:var(--color-bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border)}.summary-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;margin-bottom:var(--spacing-xs)}.summary-amount{font-size:var(--font-size-lg);font-weight:700}.summary-amount.income{color:var(--color-income)}.summary-amount.expense{color:var(--color-expense)}.balance-card{background:var(--color-bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--color-border);margin-bottom:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.balance-card .summary-amount{font-size:var(--font-size-xl)}.stats-actions{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-md)}.export-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);font-weight:500;cursor:pointer}.chart-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.chart-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.chart-tab{padding:6px 12px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.chart-tab.active{background:var(--color-bg);border-color:var(--color-text);color:var(--color-text)}.chart-content{min-height:200px}.pie-chart-container{display:flex;justify-content:center;padding:var(--spacing-md) 0}.pie-chart{width:200px;height:200px}.bar-chart{display:flex;flex-direction:column;gap:12px}.bar-item{display:grid;grid-template-columns:80px 1fr 60px;align-items:center;gap:12px}.bar-label{font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:20px;background:var(--color-bg);border-radius:var(--radius-sm);overflow:hidden}.bar-fill{height:100%;border-radius:var(--radius-sm)}.bar-value{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:right}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.legend-item{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}.calendar-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.calendar-header h3{font-size:var(--font-size-base);font-weight:600}.calendar-nav{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.weekday{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--color-bg);font-size:var(--font-size-sm);gap:2px}.calendar-day.empty{background:transparent}.calendar-day.has-tx{border:1px solid var(--color-border)}.day-number{font-weight:500;color:var(--color-text)}.day-amount{font-size:10px;font-weight:600}.day-amount.positive{color:var(--color-income)}.day-amount.negative{color:var(--color-expense)}.config-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.config-header h2{font-size:var(--font-size-xl);font-weight:700}.config-section{margin-bottom:var(--spacing-xl)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.section-header h3{font-size:var(--font-size-lg);font-weight:600}.category-group{margin-bottom:var(--spacing-lg)}.group-title{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md)}.group-title.expense{color:var(--color-expense);background:color-mix(in srgb,var(--color-expense) 10%,transparent)}.group-title.income{color:var(--color-income);background:color-mix(in srgb,var(--color-income) 10%,transparent)}.category-list{display:flex;flex-direction:column;gap:4px}.category-item{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.category-item.subcategory{margin-left:var(--spacing-lg);background:var(--color-bg)}.category-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.expand-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm)}.expand-btn:hover{background:var(--color-bg);color:var(--color-text)}.category-icon{width:28px;height:28px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.category-name{flex:1;font-weight:500}.category-type-badge{font-size:var(--font-size-xs);padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase}.category-type-badge[data-type=expense]{color:var(--color-expense);background:color-mix(in srgb,var(--color-expense) 10%,transparent)}.category-type-badge[data-type=income]{color:var(--color-income);background:color-mix(in srgb,var(--color-income) 10%,transparent)}.category-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.category-row:hover .category-actions{opacity:1}.action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all .15s}.action-btn:hover{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}.action-btn.delete:hover{color:var(--color-danger);border-color:var(--color-danger)}.subcategory-list{padding-bottom:var(--spacing-sm)}.type-toggle{display:flex;gap:var(--spacing-sm)}.type-btn{flex:1;padding:var(--spacing-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.type-btn:hover{border-color:var(--color-text-tertiary)}.type-btn.active{border-color:var(--color-primary);color:var(--color-text);background:var(--color-bg-secondary)}.color-picker{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{width:28px;height:28px;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all .15s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px currentColor}.icon-picker-trigger{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);cursor:pointer;text-align:left}.icon-picker-trigger:hover{border-color:var(--color-text-tertiary)}.icon-preview{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:currentColor;background:color-mix(in srgb,currentColor 15%,transparent);border-radius:var(--radius-md)}.icon-picker-dropdown{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:4px;margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:200px;overflow-y:auto}.icon-option{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:none;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all .15s}.icon-option:hover{background:var(--color-bg-secondary);color:var(--color-text);border-color:var(--color-border)}.icon-option.active{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.form-actions .btn{flex:1}.accent-color-picker{display:flex;flex-wrap:wrap;gap:12px}.accent-swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .2s}.accent-swatch:hover{transform:scale(1.1)}.accent-swatch.active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px currentColor}.section-header h3{display:flex;align-items:center;gap:8px}.icon-input-wrapper{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.icon-input-wrapper .icon-preview{flex-shrink:0}.icon-input-wrapper .icon-search-input{flex:1;border:none;padding:0;background:transparent}.icon-input-wrapper .icon-search-input:focus{outline:none;box-shadow:none}.current-icon-name{font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0}.app{min-height:100vh;padding-bottom:100px;background:var(--color-bg)}.header{position:sticky;top:0;z-index:50;background:var(--color-bg);border-bottom:1px solid var(--color-border);height:var(--header-height)}.header-content{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md);height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.header-title{font-family:var(--font-header);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);letter-spacing:-.5px}.header-nav{display:flex;align-items:center;gap:4px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:4px}.nav-item{display:flex;align-items:center;justify-content:center;width:36px;height:32px;border-radius:var(--radius-sm);background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer}.nav-item.active{color:var(--color-text);background:var(--color-bg)}.main{padding-top:var(--spacing-md)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer}:root{--color-bg: #fafafa;--color-bg-secondary: #ffffff;--color-text: #564f4f;--color-text-secondary: #545252;--color-text-tertiary: #847e7e;--color-primary: #1a1a1a;--color-primary-hover: #333333;--color-danger: #dc2626;--color-warning: #f59e0b;--color-success: #16a34a;--color-expense: #dc2626;--color-income: #16a34a;--color-border: #e5e5e5;--color-border-hover: #cccccc;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-header: "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 0px;--radius-md: 2px;--radius-lg: 4px;--radius-full: 2px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .1);--header-height: 56px;--max-width: 600px}[data-theme=dark]{--color-bg: #0c0c0c;--color-bg-secondary: #161616;--color-text: #e0e0e0;--color-text-secondary: #c5c5c5;--color-text-tertiary: #aaaaaa;--color-primary: #00ff9d;--color-primary-hover: #00cc7d;--color-danger: #ff5555;--color-warning: #f59e0b;--color-success: #00ff9d;--color-expense: #ff5555;--color-income: #00ff9d;--color-border: #333333;--color-border-hover: #555555;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.5;overflow-x:hidden;overflow-y:scroll;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-4{gap:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-md);font-weight:600;font-family:var(--font-sans);cursor:pointer;border:1px solid transparent;text-transform:uppercase;letter-spacing:.5px;font-size:var(--font-size-sm)}.btn-primary{background:var(--color-primary);color:var(--color-bg);border:1px solid var(--color-primary);position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .4s,height .4s}.btn-primary:active{transform:translateY(0) scale(.98);box-shadow:none}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover{border-color:var(--color-text);color:var(--color-text)}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--color-text-secondary);background:transparent;border:none;cursor:pointer;transition:all .15s}.btn-icon:hover{color:var(--color-text);background:var(--color-bg-secondary)}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.modal{background:var(--color-bg);width:100%;max-width:400px;border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);animation:modalSlideUp .2s ease-out;overflow:hidden}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase}.form-input{width:100%;padding:10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);transition:all .15s}.form-input:focus{outline:none;border-color:var(--color-primary)}select.form-input{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:36px;cursor:pointer}select.form-input option{background:var(--color-bg-secondary);color:var(--color-text);padding:8px}
