.dashboard-header .logo-icon{width:40px;height:40px;display:block}.dashboard-header .logo-wave{width:100%;height:100%;display:block;stroke:#06f;stroke-width:3;fill:none}.dashboard-wrapper{display:flex;min-height:100vh;position:relative;margin-top:80px;padding-top:0;transition:all .3s ease}.dashboard-wrapper.sidebar-collapsed .dashboard-sidebar{width:70px}.dashboard-wrapper.sidebar-collapsed .dashboard-content{margin-left:70px}.dashboard-sidebar{width:260px;background:var(--darker,#050814);border-right:1px solid var(--border,rgba(255,255,255,.1));padding:5rem 0 0;position:fixed;height:100vh;overflow-y:auto;z-index:100;transition:width .3s ease,transform .3s ease;top:0;left:0}.sidebar-toggle-container{position:fixed;top:6rem;left:245px;z-index:1002;transition:left .3s ease}.dashboard-wrapper.sidebar-collapsed .sidebar-toggle-container{left:55px}.sidebar-toggle{background:var(--primary,#0066ff);border:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:14px;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,102,255,.3);position:relative;z-index:102}.sidebar-toggle:hover{background:var(--primary-dark,#0052cc);box-shadow:0 4px 12px rgba(0,102,255,.4)}.toggle-icon{transition:transform .3s ease}.dashboard-wrapper.sidebar-collapsed .toggle-icon{transform:rotate(180deg)}.dashboard-wrapper.sidebar-collapsed .dashboard-nav-link span:not(:first-child){display:none}.dashboard-wrapper.sidebar-collapsed .dashboard-nav-link{justify-content:center;padding:.75rem 1rem}.dashboard-wrapper.sidebar-collapsed .dashboard-nav-link.active::before{width:2px}.dashboard-sidebar nav{padding:0 !important;margin:0 !important;width:100%;display:block !important;height:auto !important}.dashboard-nav{list-style:none;padding:0;margin:0}.dashboard-nav-item{margin-bottom:.5rem}.dashboard-nav-link{display:flex;align-items:center;gap:1rem;padding:.75rem 2rem;color:var(--text-muted);text-decoration:none;transition:all .3s ease;position:relative}.dashboard-nav-link:hover,.dashboard-nav-link.active{color:var(--text);background:rgba(0,102,255,.1)}.dashboard-nav-link.active::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary)}.dashboard-content{flex:1;margin-left:260px;padding:2rem;padding-top:2rem;transition:margin-left .3s ease}.dashboard-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border);gap:2rem;width:100%}.dashboard-header .logo{justify-self:start}.page-title{font-size:2rem;font-weight:700;color:var(--text);margin:0;white-space:nowrap;text-align:center;justify-self:center}.dashboard-actions{display:flex;gap:1rem;align-items:center;flex-shrink:0;justify-self:end}.dashboard-search{position:relative}.dashboard-search-input{padding:.75rem 1rem .75rem 2.5rem;background:var(--card-bg,rgba(255,255,255,3%));border:1px solid var(--border);border-radius:10px;color:var(--text);width:250px;max-width:100%;transition:all .3s ease}.dashboard-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 20px rgba(0,102,255,.2)}.dashboard-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted)}.dashboard-user-menu{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .3s ease}.dashboard-user-menu:hover{border-color:var(--primary)}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary))}.market-pulse{background:var(--panel-bg);border:var(--panel-border);border-radius:15px;padding:1.5rem;margin-bottom:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;animation:slideDown .5s ease-out}@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.pulse-item{text-align:center}.pulse-label{font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem}.pulse-value{font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:.5rem}.pulse-change{font-size:.875rem;padding:.25rem .5rem;border-radius:5px;font-weight:600}.positive{color:var(--success);background:rgba(0,255,136,.1)}.negative{color:var(--danger);background:rgba(255,51,102,.1)}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-bottom:2rem}.grid-item{background:var(--panel-bg);border:var(--panel-border);border-radius:15px;padding:1.5rem;transition:all .3s ease;position:relative;overflow:hidden}.grid-item:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.3);border-color:rgba(0,102,255,.3)}.grid-item::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary),var(--secondary));transform:scaleX(0);transition:transform .3s ease}.grid-item:hover::before{transform:scaleX(1)}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-12{grid-column:span 12}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.card-title{font-size:1.125rem;font-weight:600;color:var(--text)}.card-actions{display:flex;gap:.5rem}.card-action{padding:.25rem .5rem;background:rgba(255,255,255,5%);border:1px solid var(--border);border-radius:5px;color:var(--text-muted);font-size:.75rem;cursor:pointer;transition:all .3s ease}.card-action:hover,.card-action.active{background:rgba(0,102,255,.2);border-color:var(--primary);color:var(--text)}.signals-container{display:flex;flex-direction:column;gap:1rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.signals-container::-webkit-scrollbar{width:6px}.signals-container::-webkit-scrollbar-track{background:rgba(255,255,255,2%);border-radius:3px}.signals-container::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:3px}.signal-card{background:rgba(255,255,255,2%);border:1px solid var(--border);border-radius:10px;padding:1rem;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;transition:all .3s ease;cursor:pointer}.signal-card:hover{background:rgba(255,255,255,5%);transform:translateX(5px)}.signal-score{width:60px;height:60px;position:relative}.score-circle{width:100%;height:100%;border-radius:50%;background:conic-gradient( var(--primary) 0,var(--secondary) 90deg,rgba(255,255,255,.1) 90deg );display:flex;align-items:center;justify-content:center;position:relative;animation:rotateIn .8s ease-out}@keyframes rotateIn{from{transform:rotate(-90deg);opacity:0}to{transform:rotate(0);opacity:1}}.score-circle::before{content:'';position:absolute;width:50px;height:50px;background:var(--dark);border-radius:50%}.score-value{position:relative;font-size:1.25rem;font-weight:700;color:var(--text);z-index:1}.signal-info{flex:1}.signal-symbol{font-size:1.125rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.signal-details{font-size:.875rem;color:var(--text-muted);display:flex;gap:1rem}.signal-action{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.signal-type{padding:.25rem .75rem;border-radius:5px;font-size:.875rem;font-weight:600}.signal-buy{background:rgba(0,255,136,.2);color:var(--success)}.signal-sell{background:rgba(255,51,102,.2);color:var(--danger)}.btn-view{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:5px;font-size:.875rem;cursor:pointer;transition:all .3s ease}.btn-view:hover{background:var(--primary-dark);transform:translateY(-1px)}.heatmap-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem;height:300px}.heatmap-cell{background:rgba(255,255,255,2%);border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.heatmap-cell::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:var(--success);opacity:0;transition:opacity .3s ease}.heatmap-cell.positive::before{opacity:.2}.heatmap-cell.negative::before{background:var(--danger);opacity:.2}.heatmap-cell:hover{transform:scale(1.05);z-index:10;box-shadow:0 10px 30px rgba(0,0,0,.5)}.sector-name{font-size:.875rem;font-weight:600;color:var(--text);margin-bottom:.5rem;text-align:center}.sector-change{font-size:1.125rem;font-weight:700}.portfolio-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.stat-item{background:rgba(255,255,255,2%);border:1px solid var(--border);border-radius:10px;padding:1rem;text-align:center}.stat-label{font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text)}.gauge-container{width:120px;height:60px;margin:0 auto;position:relative}.gauge-background{width:100%;height:100%;border:3px solid rgba(255,255,255,.1);border-bottom:none;border-radius:60px 60px 0 0}.gauge-fill{position:absolute;bottom:0;left:50%;width:3px;height:50px;background:var(--primary);transform-origin:bottom center;transform:translateX(-50%)rotate(-45deg);transition:transform .5s ease}.gauge-label{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:.875rem;font-weight:600}.sparkline{width:60px;height:20px;display:inline-block;vertical-align:middle;margin-left:.5rem}.sparkline-path{stroke:var(--primary);stroke-width:2;fill:none;filter:drop-shadow(0 0 3px rgba(0,102,255,.5))}.loading-skeleton{background:linear-gradient(90deg,rgba(255,255,255,5%) 25%,rgba(255,255,255,.1) 50%,rgba(255,255,255,5%) 75%);background-size:200% 100%;animation:loading 1.5s infinite;padding:2rem;border-radius:10px;text-align:center;color:var(--text-muted)}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@media(max-width:1200px){.dashboard-grid{grid-template-columns:repeat(6,1fr)}.span-8{grid-column:span 6}.span-4{grid-column:span 6}.span-6{grid-column:span 6}}@media(max-width:768px){.sidebar-toggle-container{display:none}.dashboard-sidebar{transform:translateX(-100%)}.market-pulse{background:linear-gradient(135deg,rgba(0,102,255,.1) 0%,rgba(0,212,255,.1) 100%);border:1px solid rgba(0,212,255,.3)}.grid-item{background:rgba(255,255,255,3%);border:1px solid rgba(255,255,255,.1)}.dashboard-sidebar.active{transform:translateX(0)}.dashboard-content{margin-left:0;padding:1rem}.dashboard-grid{grid-template-columns:1fr}.span-8,.span-4,.span-6,.span-12{grid-column:span 1}.market-pulse{grid-template-columns:1fr}.dashboard-search-input{width:100%}.dashboard-actions{width:100%;flex-direction:column}.portfolio-stats{grid-template-columns:1fr}}.logout-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.logout-modal{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:2rem;max-width:400px;width:90%;box-shadow:0 10px 40px rgba(0,0,0,.5);animation:slideIn .3s ease;text-align:center}@keyframes slideIn{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-icon{margin-bottom:1.5rem}.modal-icon svg{width:60px;height:60px}.modal-logo-wave{stroke:#06f;stroke-width:3;fill:none;opacity:.9}.logout-modal h3{font-size:1.5rem;margin:0 0 1rem;color:var(--text-primary)}.logout-modal p{font-size:1rem;color:var(--text-secondary);margin:0 0 2rem}.modal-actions{display:flex;gap:1rem;justify-content:center}.btn-cancel,.btn-confirm{padding:.75rem 2rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:120px}.btn-cancel{background:rgba(255,255,255,.1);color:var(--text-primary);border:1px solid var(--border)}.btn-cancel:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}.btn-confirm{background:var(--primary);color:#fff}.btn-confirm:hover{background:var(--primary-dark);box-shadow:0 4px 12px rgba(0,102,255,.3)}.btn-confirm:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.logout-modal{padding:1.5rem}.modal-actions{flex-direction:column;width:100%}.btn-cancel,.btn-confirm{width:100%}}