:root{--bg:#0a0f1c;--surface:#111827;--card:#1f2937;--text:#f9fafb;--muted:#9ca3af;--border:#374151;--primary:#3b82f6;--primary-600:#2563eb;--accent:#06b6d4;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--radius:16px;--radius-sm:12px;--radius-lg:24px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--primary-50:color-mix(in oklab,var(--primary) 8%,transparent);--success-50:color-mix(in oklab,var(--success) 8%,transparent);--warning-50:color-mix(in oklab,var(--warning) 8%,transparent);--danger-50:color-mix(in oklab,var(--danger) 8%,transparent);--mobile:480px;--tablet:768px;--desktop:1024px;--wide:1200px}:root[data-theme=light]{--bg:#fafafa;--surface:#ffffff;--card:#ffffff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#3b82f6;--primary-600:#2563eb;--accent:#06b6d4;--success:#10b981;--warning:#f59e0b;--danger:#ef4444}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#fafafa;--surface:#ffffff;--card:#ffffff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#3b82f6;--primary-600:#2563eb;--accent:#06b6d4;--success:#10b981;--warning:#f59e0b;--danger:#ef4444}}:root[data-theme=dark]{--bg:#0a0f1c;--surface:#111827;--card:#1f2937;--text:#f9fafb;--muted:#9ca3af;--border:#374151;--primary:#3b82f6;--primary-600:#2563eb;--accent:#06b6d4;--success:#10b981;--warning:#f59e0b;--danger:#ef4444}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;font-feature-settings:"cv10","ss01","ss02","ss03";font-size:var(--text-base)}h1{font-size:clamp(var(--text-2xl),5vw,var(--text-4xl));margin:0 0 var(--space-lg);font-weight:800;letter-spacing:-.025em;line-height:1.2}h2{font-size:clamp(var(--text-xl),4vw,var(--text-2xl));margin:0 0 var(--space-md);font-weight:700;line-height:1.3}h3{font-size:clamp(var(--text-lg),3vw,var(--text-xl));font-weight:600;line-height:1.4}h3,p{margin:0 0 var(--space-sm)}p{line-height:1.6}.subtitle{font-size:var(--text-sm);margin-top:calc(var(--space-xs) * -1);margin-bottom:var(--space-md);line-height:1.5}.muted,.subtitle{color:var(--muted)}.topnav{position:-webkit-sticky;position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);background:linear-gradient(0deg,rgba(255,255,255,.02),rgba(255,255,255,.02)),var(--surface);-webkit-backdrop-filter:saturate(120%) blur(6px);backdrop-filter:saturate(120%) blur(6px)}.topnav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:24px}.brand{font-weight:800;letter-spacing:.2px;font-size:1.25rem}.header-left{flex-shrink:0}.header-left,.header-nav{display:flex;align-items:center}.header-nav{gap:8px}.header-right{display:flex;align-items:center;gap:16px;flex-shrink:0}.header-nav a{padding:8px 12px;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:500;transition:all .2s ease}.header-nav a:hover{background:rgba(125,125,125,.08);color:var(--text)}.dropdown-container{position:relative;display:inline-block}.dropdown-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:rgba(125,125,125,.04);border:1px solid var(--border);color:var(--text);text-decoration:none;font-size:.875rem;font-weight:500;transition:all .2s ease;cursor:pointer}.dropdown-trigger:hover{background:rgba(125,125,125,.08);border-color:var(--primary)}.dropdown-trigger:focus{outline:none;box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)}.user-trigger{gap:8px;padding:6px 12px}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:white;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem}.dropdown-arrow{font-size:.75rem;transition:transform .2s ease;color:var(--muted)}.dropdown-trigger:hover .dropdown-arrow{color:var(--text)}.dropdown-menu{position:absolute;top:100%;right:0;min-width:200px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);z-index:1000;margin-top:4px;overflow:hidden;animation:dropdownFadeIn .2s ease;max-width:90vw}.dropdown-menu.user-menu{min-width:220px}.dropdown-item{display:block;width:100%;padding:12px 16px;border:none;background:none;color:var(--text);text-align:left;font-size:.875rem;cursor:pointer;transition:background-color .2s ease}.dropdown-item:focus,.dropdown-item:hover{background:rgba(125,125,125,.08)}.dropdown-item:focus{outline:none}.dropdown-menu .user-info{padding:16px;border-bottom:1px solid var(--border)}.dropdown-menu .user-name{font-weight:600;font-size:.875rem;color:var(--text);margin-bottom:4px}.dropdown-menu .user-email{font-size:.75rem;color:var(--muted)}.dropdown-divider{height:1px;background:var(--border);margin:8px 0}.logout-item{color:var(--danger);font-weight:500}.logout-item:hover{background:rgba(var(--danger-rgb),.1)}.logout-item:disabled{opacity:.6;cursor:not-allowed}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.loading-placeholder{color:var(--muted);font-size:.875rem;padding:8px 12px}.portfolio-selector{padding:16px}.portfolio-dropdown-content{display:flex;flex-direction:column;gap:12px}.portfolio-label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.875rem}.portfolio-label-text{font-weight:500;color:var(--text)}.portfolio-select{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 12px;color:var(--text);font-size:.875rem;width:100%}.portfolio-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)}.portfolio-manage-btn{background:var(--primary);color:white;border:none;border-radius:6px;padding:8px 12px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.portfolio-manage-btn:hover{background:var(--primary-dark)}@media (max-width:768px){.topnav-inner{gap:12px;padding:12px 16px;flex-wrap:wrap;min-height:56px}.header-nav{gap:4px;order:2;flex:1 1;justify-content:center;min-width:0}.header-nav a{padding:6px 8px;font-size:.875rem;flex-shrink:0}.header-right{gap:8px;flex-wrap:wrap;order:3;flex-shrink:0;justify-content:flex-end}.dropdown-trigger{padding:8px 10px;font-size:.8rem;white-space:nowrap;min-height:36px}.user-trigger{padding:6px 8px;white-space:nowrap;min-width:auto}.user-avatar{width:32px;height:32px;font-size:.875rem;flex-shrink:0}.user-name{display:none}.theme-toggle{order:1;margin-left:auto}.dropdown-menu{min-width:180px;max-width:calc(100vw - 32px);right:0;left:auto;position:fixed;top:auto;bottom:auto}.dropdown-menu.user-menu{min-width:200px;max-width:calc(100vw - 32px)}.dropdown-container:first-child .dropdown-menu,.dropdown-container:last-child .dropdown-menu{right:0;left:auto}.dropdown-item{padding:12px 16px;font-size:.9rem}.portfolio-selector{padding:16px}.portfolio-dropdown-content{gap:12px}.portfolio-manage-btn{padding:8px 12px;font-size:.9rem}.modal-backdrop{padding:10px;align-items:flex-start;justify-content:center;z-index:99999}.modal{position:relative;top:0;left:0;transform:none;margin:0;max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);overflow-y:auto;width:100%}.modal .card-header{margin-bottom:16px}.modal .actions{flex-direction:column;gap:8px}.modal .actions button{width:100%}}@media (max-width:480px){.topnav-inner{padding:8px 12px;gap:6px;min-height:48px}.header-left .brand{font-size:1rem}.header-nav{gap:2px}.header-nav a{padding:4px 6px;font-size:.8rem}.header-right{gap:4px}.dropdown-trigger{padding:6px 8px;font-size:.75rem;min-height:32px}.user-trigger{padding:4px 6px}.user-avatar{width:28px;height:28px;font-size:.75rem}.theme-toggle{min-width:36px;padding:6px 8px}.dropdown-menu{min-width:160px;max-width:calc(100vw - 24px)}.dropdown-menu.user-menu{min-width:180px}.modal-backdrop{padding:5px;z-index:99999}.modal{top:5px;left:5px;right:5px;bottom:5px;padding:16px;z-index:100000}}.container{max-width:min(1400px,100vw - var(--space-lg));margin:0 auto;padding:var(--space-lg) var(--space-md)}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:var(--space-sm) var(--space-md);justify-content:space-around;z-index:1000;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.mobile-nav,.mobile-nav-item{display:flex;align-items:center}.mobile-nav-item{flex-direction:column;gap:4px;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all .2s ease;color:var(--muted);text-decoration:none;min-width:60px}.mobile-nav-item.active,.mobile-nav-item:hover{color:var(--primary);background:var(--primary-50)}.mobile-nav-icon{font-size:20px;line-height:1}.mobile-nav-label{font-size:var(--text-xs);font-weight:500;text-align:center}.desktop-nav{display:flex;gap:var(--space-lg);align-items:center}@media (max-width:768px){.desktop-nav{display:none}.mobile-nav{display:flex}}@media (min-width:769px){.mobile-nav{display:none}}.card{background:linear-gradient(145deg,var(--card) 0,color-mix(in oklab,var(--card) 95%,var(--surface)) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-lg);box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:color-mix(in oklab,var(--border) 70%,var(--primary))}.card-header{justify-content:space-between;margin-bottom:var(--space-md);flex-wrap:wrap}.card-header,.card-title{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.card-title{flex:1 1}.card-title h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:var(--text-lg);font-weight:600;color:var(--text)}.card-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0;flex-wrap:wrap}.grid{display:grid;grid-gap:var(--space-md);gap:var(--space-md)}.grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}@media (min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}.dashboard-grid{display:grid;grid-gap:var(--space-lg);gap:var(--space-lg);grid-template-columns:1fr}@media (min-width:640px){.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}}@media (min-width:1024px){.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(450px,1fr))}}.stats{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}@media (min-width:720px){.stats{grid-template-columns:repeat(3,1fr)}}.stat{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0)),var(--card);border:1px solid var(--border);border-radius:12px;padding:12px}.stat .label{color:var(--muted);font-size:.85rem}.stat .value{font-size:1.4rem;font-weight:700}.table{width:100%;border-collapse:separate;border-spacing:0 8px}.table thead th{font-size:.85rem;color:var(--muted);font-weight:600;padding:12px 16px;text-align:left;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem}.table tbody tr{background:var(--surface);border:1px solid var(--border);transition:all .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.05)}.table tbody tr:hover{background:rgba(125,125,125,.08);box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateY(-1px)}.table tbody tr td{padding:14px 16px;border-top:1px solid var(--border);vertical-align:middle}.table tbody tr:first-child td{border-top-left-radius:12px;border-top-right-radius:12px}.table tbody tr:last-child td{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}.toolbar{align-items:center;justify-content:space-between;margin:20px 0;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.filters,.toolbar{display:flex;flex-wrap:wrap;gap:12px}.filters{flex:1 1}.transaction-toolbar-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}label{display:flex;align-items:center;gap:8px;color:var(--muted)}input,select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,select::placeholder{color:var(--muted)}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 25%,transparent)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,var(--muted) 50%,transparent 50%),linear-gradient(-45deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 10px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:38px}select:hover{border-color:color-mix(in oklab,var(--primary) 35%,var(--border))}select:disabled{opacity:.6;cursor:not-allowed}select option{background:var(--surface);color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .2s ease;font-size:var(--text-sm);font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-50)}.btn-primary{background:var(--primary);color:white;border-color:transparent}.btn-primary:active,.btn-primary:hover{background:var(--primary-600)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--primary-50);border-color:var(--primary)}.btn-success{background:var(--success);color:white;border-color:transparent}.btn-success:hover{filter:brightness(.95)}.btn-danger{background:var(--danger);color:white;border-color:transparent}.btn-danger:hover{filter:brightness(.95)}.btn-ghost{background:transparent;color:var(--muted);border-color:transparent}.btn-ghost:hover{background:var(--primary-50);color:var(--primary)}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--text-base);border-radius:var(--radius)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn:disabled:hover{background:inherit;transform:none}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--muted)}.badge-info{background:color-mix(in oklab,var(--primary) 12%,transparent);color:var(--primary);border-color:color-mix(in oklab,var(--primary) 30%,transparent)}.transaction-type-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.transaction-type-badge.deposit{background:color-mix(in oklab,var(--success) 15%,transparent);color:var(--success);border:1px solid color-mix(in oklab,var(--success) 30%,transparent)}.transaction-type-badge.withdrawal{background:color-mix(in oklab,var(--warning) 15%,transparent);color:var(--warning);border:1px solid color-mix(in oklab,var(--warning) 30%,transparent)}.transaction-type-badge.swap{background:color-mix(in oklab,var(--primary) 15%,transparent);color:var(--primary);border:1px solid color-mix(in oklab,var(--primary) 30%,transparent)}@keyframes spin{to{transform:rotate(1turn)}}.loading-spinner{width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in oklab,var(--muted) 40%,transparent);border-top-color:var(--primary);animation:spin 1s linear infinite}.icon-btn{background:none;border:none;color:var(--muted);padding:4px;border-radius:8px;cursor:pointer;transition:color .15s ease,background .15s ease}.icon-btn:hover{color:var(--text);background:rgba(125,125,125,.08)}.chart-card{transition:all .2s ease;overflow:visible}.chart-card-collapsed{opacity:.85}.chart-card-body{min-height:0;overflow:hidden;position:relative;width:100%}.chart-card-body>*{max-width:100%}.chart-card-body .js-plotly-plot,.chart-card-body .plotly{max-width:100%!important;overflow:hidden!important}.chart-card-footer{margin-top:10px;color:var(--muted);font-size:.9rem}.modal-backdrop.chart-modal-backdrop{align-items:center;justify-content:center}.modal.chart-modal{width:min(1200px,calc(100vw - 40px));height:calc(100vh - 40px);max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}.chart-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:10px}.chart-modal-body{flex:1 1;min-height:0}.chart-modal-body .js-plotly-plot,.chart-modal-body .js-plotly-plot .plotly{height:100%!important}.segmented{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.segmented button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--text);padding:6px 12px;cursor:pointer}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--primary);color:#fff}.segmented button:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 25%,transparent)}.theme-toggle{min-width:auto;padding:8px 12px;font-size:.9rem;transition:all .2s ease}.theme-toggle .theme-icon{font-size:1.1rem;margin-right:4px}.theme-toggle:hover{transform:scale(1.05)}@media (max-width:767px){.container,.dashboard-container{padding:var(--space-md) var(--space-sm);padding-bottom:calc(var(--space-xl) + 80px)}.card{padding:var(--space-md);border-radius:var(--radius-sm)}.card-title h2{font-size:var(--text-base);font-weight:600}.card-header{flex-wrap:wrap;align-items:flex-start;gap:var(--space-sm)}.card-title{min-width:0;flex:1 1 auto}.card-actions{width:100%;justify-content:flex-start}.card-actions,.card-actions label{flex-wrap:wrap;gap:var(--space-xs)}.card-actions label{font-size:var(--text-sm)}.segmented{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.segmented button{flex:0 0 auto;white-space:nowrap;padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.chart-modal-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:var(--space-sm)}.chart-modal-header>div:first-child{flex:1 1;min-width:0}.chart-modal-header .icon-btn{flex-shrink:0;margin-left:auto;order:999}.modal .card-header{flex-wrap:nowrap;align-items:center}.modal .card-title{flex:1 1;min-width:0}.modal .card-actions{width:auto;flex-shrink:0;justify-content:flex-end}.btn{padding:var(--space-sm) var(--space-md)}.btn,.icon-btn{min-height:44px}.icon-btn{min-width:44px}input,select{min-height:44px;padding:var(--space-sm) var(--space-md)}}@media (max-width:480px){.topnav-inner{padding:10px 12px}.brand{font-size:1.1rem}.nav a{padding:4px 6px;font-size:.85rem}.card,.container{padding:12px}.card-title h2{font-size:1rem}.card-actions{gap:6px}.segmented button{padding:6px 8px;font-size:.85rem}input,select{padding:9px 10px}}@media (max-width:768px){.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.table{min-width:600px}.table tbody td,.table thead th{padding:8px 6px;font-size:.85rem}}@media (max-width:480px){.table{min-width:500px}.table tbody td,.table thead th{padding:6px 4px;font-size:.8rem}.btn{padding:6px 10px;font-size:.85rem}.toolbar{flex-direction:column;align-items:stretch;gap:12px}.filters{flex-wrap:wrap;gap:8px}}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;overflow-y:auto}.modal{background:var(--surface);color:var(--text);padding:24px;border-radius:var(--radius-lg);max-width:600px;width:100%;border:1px solid var(--border);box-shadow:0 20px 60px rgba(0,0,0,.4);margin:0 auto;max-height:90vh;overflow-y:auto;position:relative;z-index:100000}.modal.transaction-modal{max-width:700px;max-height:95vh}.modal header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal form{display:grid;grid-gap:16px;gap:16px}.modal .actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;font-size:.9rem;color:var(--text)}.form-group small{font-size:.85rem;line-height:1.4}.form-input,.form-select{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text);font-size:.95rem;transition:all .2s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 20%,transparent)}.error-messages{background:color-mix(in oklab,var(--danger) 15%,transparent);border:1px solid color-mix(in oklab,var(--danger) 40%,transparent);border-radius:var(--radius-sm);padding:12px;margin-bottom:16px}.error-message{color:var(--danger);font-size:.9rem;margin:4px 0}@media (max-width:768px){.js-plotly-plot{min-height:250px!important}.js-plotly-plot .plotly{height:250px!important}.js-plotly-plot .legend{max-height:200px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.js-plotly-plot .plot-container{overflow:visible}.card-actions .icon-btn{width:40px!important;height:40px!important;padding:8px!important;font-size:1.3rem!important;min-width:40px;min-height:40px}.chart-modal-header .icon-btn{width:44px!important;height:44px!important;padding:10px!important;font-size:1.4rem!important;min-width:44px;min-height:44px}}@media (max-width:480px){.modal{margin:16px;padding:16px}.modal .actions{flex-direction:column}.js-plotly-plot{min-height:200px!important}.js-plotly-plot .plotly{height:200px!important}.js-plotly-plot .legend{max-height:150px;font-size:10px!important}.card-actions .icon-btn{width:44px!important;height:44px!important;padding:10px!important;font-size:1.4rem!important;min-width:44px;min-height:44px}.chart-modal-header .icon-btn{width:48px!important;height:48px!important;padding:12px!important;font-size:1.5rem!important;min-width:48px;min-height:48px}}.dashboard-container{max-width:min(1400px,100vw - var(--space-lg));margin:0 auto;padding:var(--space-lg) var(--space-md);padding-bottom:calc(var(--space-xl) + 80px)}.dashboard-header{margin-bottom:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.dashboard-title{font-size:clamp(var(--text-2xl),6vw,var(--text-4xl));font-weight:800;margin:0;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-subtitle{font-size:var(--text-lg);color:var(--muted);margin:0;line-height:1.5}.dashboard-summary{display:grid;grid-template-columns:1fr;grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-xl)}.summary-card{background:linear-gradient(145deg,var(--card) 0,color-mix(in oklab,var(--card) 95%,var(--surface)) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-lg);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));opacity:0;transition:opacity .3s ease}.summary-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.summary-card:hover:before{opacity:1}.summary-card.primary{background:linear-gradient(135deg,var(--primary) 0,var(--primary-600) 100%);border-color:var(--primary);color:white}.summary-card.primary:before{background:linear-gradient(90deg,rgba(255,255,255,.8),rgba(255,255,255,.4))}.summary-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:var(--space-xs)}.summary-card.primary .summary-label{color:rgba(255,255,255,.8)}.summary-value{font-size:clamp(var(--text-2xl),8vw,var(--text-4xl));font-weight:800;color:var(--text);margin-bottom:var(--space-xs);line-height:1.1}.summary-card.primary .summary-value{color:white}.summary-value.positive{color:var(--success)}.summary-value.negative{color:var(--danger)}.summary-change{font-size:var(--text-sm);font-weight:600;display:flex;align-items:center;gap:var(--space-xs)}.summary-change.positive{color:var(--success)}.summary-change.negative{color:var(--danger)}.summary-card.primary .summary-change{color:rgba(255,255,255,.9)}.summary-subtext{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-xs);opacity:.8}@media (min-width:640px){.dashboard-summary{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.summary-card{padding:var(--space-xl)}}@media (min-width:1024px){.dashboard-container{padding-bottom:var(--space-xl)}.dashboard-header{flex-direction:row;align-items:center;justify-content:space-between}.dashboard-subtitle{margin:0}}.chart-empty,.chart-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--muted);font-size:var(--text-sm);padding:var(--space-lg);text-align:center}@media (max-width:767px){.chart-empty,.chart-loading{min-height:150px;padding:var(--space-md);font-size:var(--text-xs)}.js-plotly-plot .plotly .cartesianlayer .subplot{touch-action:manipulation}.js-plotly-plot .legend{font-size:11px!important;padding:8px!important}.js-plotly-plot .legend .legendtoggle{padding:4px!important}}.skeleton-text{background:linear-gradient(90deg,var(--border) 25%,var(--surface) 50%,var(--border) 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.chart-control{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;color:var(--text)}.chart-control select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;color:var(--text);font-size:.875rem;cursor:pointer;transition:all .2s ease}.chart-control select:hover{border-color:var(--primary)}.chart-control select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50)}.stacked-hover-tooltip{position:absolute;top:16px;right:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;min-width:200px;max-width:calc(100% - 32px);box-shadow:var(--shadow-md);z-index:10;pointer-events:none}@media (max-width:768px){.stacked-hover-tooltip{top:8px;right:8px;left:8px;min-width:auto;max-width:calc(100% - 16px);padding:10px;font-size:.875rem}}.tooltip-date{font-weight:600;color:var(--text)}.tooltip-date,.tooltip-total{font-size:.875rem;margin-bottom:8px}.tooltip-total{color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--border)}.tooltip-items{display:flex;flex-direction:column;gap:6px}.tooltip-item{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.tooltip-asset{font-weight:500}.tooltip-value{color:var(--muted);font-weight:600}.charts-mobile-view{width:100%}.chart-categories{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);padding:0 var(--space-sm);overflow-x:auto;-webkit-overflow-scrolling:touch}.chart-category-tab{flex-shrink:0;padding:var(--space-xs) var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.chart-category-tab:hover{background:var(--primary-50);color:var(--primary)}.chart-category-tab.active{background:var(--primary);color:white;border-color:var(--primary)}.chart-swiper{overflow:hidden;touch-action:pan-x}.chart-swiper-container{display:flex;height:100%}.chart-swiper-slide{flex-shrink:0;padding:0 var(--space-sm)}.chart-mobile-grid{display:grid;grid-gap:var(--space-md);gap:var(--space-md);grid-template-columns:1fr}.chart-indicators{display:flex;justify-content:center;gap:var(--space-xs);margin-top:var(--space-md)}.chart-indicator{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background-color .3s ease}.chart-indicator.active{background:var(--primary)}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}