:root{--primary: #5e72e4;--primary-dark: #324cdd;--secondary: #8392ab;--success: #2dce89;--info: #11cdef;--warning: #fb6340;--danger: #f5365c;--dark: #212529;--light: #ced4da;--lighter: #e9ecef;--white: #ffffff;--sidebar-width: 260px;--sidebar-collapsed: 0px;--topbar-height: 56px;--bg-body: #0d1117;--bg-card: #161b22;--bg-hover: #1c2333;--bg-input: #0d1117;--bg-secondary: #1c2333;--bg-expanded: rgba(22,27,34,.6);--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--border-color: #30363d;--border-subtle: #21262d;--shadow: 0 0 1rem rgba(0,0,0,.3);--scrollbar-thumb: #30363d;--scrollbar-hover: #484f58;--skeleton-from: #161b22;--skeleton-via: #1c2333}[data-theme=light]{--bg-body: #f1f5f9;--bg-card: #ffffff;--bg-hover: #f3f4f6;--bg-input: #ffffff;--bg-secondary: #f3f4f6;--bg-expanded: #f9fafb;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--border-color: #e5e7eb;--border-subtle: #e5e7eb;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--scrollbar-thumb: #d1d5db;--scrollbar-hover: #9ca3af;--skeleton-from: #e5e7eb;--skeleton-via: #f3f4f6}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-body);color:var(--text-secondary);line-height:1.5;overflow-x:hidden;min-width:320px}#root{min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-height);background:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:1rem;padding:0 1.25rem;z-index:200}.topbar-left{display:flex;align-items:center;gap:.75rem;width:calc(var(--sidebar-width) - 1rem);flex-shrink:0}.sidebar-collapsed .topbar-left{width:auto}.topbar-toggle{width:36px;height:36px;border-radius:.5rem;background:none;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .15s ease;flex-shrink:0}.topbar-toggle:hover{background:var(--bg-hover);color:var(--primary);border-color:var(--primary)}.topbar-logo{height:24px;object-fit:contain}.topbar-search{flex:0 1 auto;position:relative;max-width:300px;min-width:180px}.topbar-search-input-wrapper{position:relative;display:flex;align-items:center}.topbar-search-icon{position:absolute;left:.75rem;color:var(--text-muted);pointer-events:none;flex-shrink:0}.topbar-search-input{width:100%;height:38px;padding:0 3.5rem 0 2.25rem;font-size:.85rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--bg-input);color:var(--text-primary);transition:all .15s ease}.topbar-search-input::placeholder{color:var(--text-muted)}.topbar-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5e72e426}.topbar-search-shortcut{position:absolute;right:.75rem;display:flex;align-items:center;gap:.125rem;pointer-events:none}.topbar-search-shortcut kbd{font-family:inherit;font-size:.65rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.25rem;padding:.1rem .3rem;line-height:1}.category-nav{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.category-tab{position:relative;display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8rem;font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:1rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.category-tab:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--primary)}.category-tab .category-count{font-size:.65rem;font-weight:600;color:var(--text-muted);background:var(--bg-body);border-radius:.625rem;padding:.1rem .4rem;line-height:1}.category-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 8px 24px #0006;max-height:320px;overflow-y:auto;z-index:300}.category-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .1s ease;border:none;background:none;width:100%;text-align:left;font-family:inherit}.category-dropdown-item:hover{background:var(--bg-hover)}.category-dropdown-item .ticker{font-weight:600;font-size:.8rem;color:var(--text-primary);flex-shrink:0;min-width:52px}.category-dropdown-item .name{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-categories{padding:0 .75rem}.sidebar-category-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;font-size:.8rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-radius:.375rem;transition:all .15s ease;border:none;background:none;width:100%;text-align:left;font-family:inherit}.sidebar-category-header:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-category-header .category-label{display:flex;align-items:center;gap:.5rem}.sidebar-category-header .category-badge{font-size:.65rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);border-radius:.625rem;padding:.1rem .4rem;line-height:1}.sidebar-category-header .chevron{transition:transform .2s ease;color:var(--text-muted)}.sidebar-category-header .chevron.open{transform:rotate(180deg)}.sidebar-category-items{overflow:hidden;max-height:0;transition:max-height .25s ease}.sidebar-category-items.open{max-height:600px}.sidebar-category-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 1rem .375rem 1.75rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;border-radius:.375rem;transition:all .1s ease;border:none;background:none;width:100%;text-align:left;font-family:inherit;white-space:nowrap;overflow:hidden}.sidebar-category-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-category-item .item-ticker{font-weight:600;flex-shrink:0;min-width:44px;color:var(--text-primary)}.sidebar-category-item .item-name{color:var(--text-muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis}.topbar-right{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}.topbar-user{position:relative}.topbar-user-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;padding:.375rem .5rem;border-radius:.5rem;transition:background .15s ease;color:var(--text-secondary)}.topbar-user-btn:hover{background:var(--bg-hover)}.topbar-user-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.topbar-user-name{font-size:.8rem;font-weight:500;color:var(--text-primary);white-space:nowrap}.topbar-user-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:220px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 8px 24px #0006;z-index:300;overflow:hidden}.topbar-user-dropdown-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.topbar-user-dropdown-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.topbar-user-dropdown-role{font-size:.7rem;color:var(--text-muted);margin-top:.125rem}.topbar-user-dropdown-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem 1rem;background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--text-secondary);transition:all .15s ease;text-align:left}.topbar-user-dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.topbar-user-dropdown-item.danger:hover{color:var(--danger)}.topbar-user-dropdown-divider{height:1px;background:var(--border-color);margin:0}.topbar-search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 8px 24px #0006;max-height:320px;overflow-y:auto;z-index:300}.topbar-search-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .1s ease}.topbar-search-item:hover,.topbar-search-item.highlighted{background:var(--bg-hover)}.topbar-search-ticker{font-weight:600;font-size:.8rem;color:var(--text-primary);flex-shrink:0}.topbar-search-name{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-container{display:flex;min-height:100vh;overflow-x:hidden;padding-top:var(--topbar-height)}.app-container.sidebar-collapsed .main-content{margin-left:0;padding-left:2.5rem}.main-content{flex:1;margin-left:var(--sidebar-width);padding:1.5rem;min-height:calc(100vh - var(--topbar-height));transition:margin-left .3s ease,padding-left .3s ease;max-width:100%;overflow-x:hidden}.content-wrapper{max-width:1400px;margin:0 auto}.sidebar{background:var(--bg-card);width:var(--sidebar-width);height:calc(100vh - var(--topbar-height));box-shadow:var(--shadow);position:fixed;left:0;top:var(--topbar-height);z-index:100;display:flex;flex-direction:column;transition:transform .3s ease,width .3s ease;overflow:hidden}.sidebar.collapsed{transform:translate(-100%);width:0}.sidebar-nav{padding:.75rem 0;flex:1;overflow-y:auto}.sidebar-section-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:.75rem 1.25rem .5rem}.nav-item{padding:.125rem .75rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border-radius:.5rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;transition:all .15s ease;white-space:nowrap}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:#5e72e41a;color:var(--primary);font-weight:600}.sidebar-divider{margin:.5rem 1.25rem;border:none;border-top:1px solid var(--border-color)}.card,.chart-card,.stat-card{background:var(--bg-card);border-radius:.75rem;box-shadow:var(--shadow);overflow:hidden}.chart-card{margin-bottom:1.5rem}.chart-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.chart-header h3{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center}.chart-body{padding:1.25rem;overflow-x:auto}.stat-card{padding:1rem;display:flex;align-items:flex-start;justify-content:space-between;transition:transform .15s ease}.stat-card:hover{transform:translateY(-2px)}.stat-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.stat-icon.primary{background:linear-gradient(87deg,#5e72e4 0,#825ee4)}.stat-icon.success{background:linear-gradient(87deg,#2dce89 0,#2dcecc)}.stat-icon.info{background:linear-gradient(87deg,#11cdef 0,#1171ef)}.stat-icon.warning{background:linear-gradient(87deg,#fb6340 0,#fbb140)}.stat-icon.danger{background:linear-gradient(87deg,#f5365c 0,#f56036)}.stat-content h5{color:var(--text-muted);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;white-space:nowrap}.stat-content .value{color:var(--text-primary);font-size:1.15rem;font-weight:600}.topbar-market{flex-shrink:0;margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;line-height:1.2}.topbar-market-row{display:flex;align-items:center;gap:.375rem}.status-dot-sm{width:7px;height:7px;border-radius:50%;animation:pulse 2s ease-in-out infinite}.status-dot-sm.open{background:var(--success);box-shadow:0 0 0 2px #2dce8933}.status-dot-sm.closed{background:var(--danger);box-shadow:0 0 0 2px #f5365c33}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.topbar-market-label{font-weight:600;font-size:.7rem;color:var(--text-secondary);cursor:default}.topbar-market-label.open{color:var(--success)}.topbar-market-label.closed{color:var(--danger)}.topbar-market-countdown{font-size:.7rem;color:var(--text-muted)}.topbar-market-time{font-weight:600;color:var(--text-secondary)}.countdown-urgent-sm{font-weight:600;color:var(--danger);animation:urgentPulse 1.5s ease-in-out infinite}@keyframes urgentPulse{0%,to{opacity:1}50%{opacity:.5}}.stock-header{background:var(--bg-card);border-radius:.75rem;padding:1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.ticker-row{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.ticker-info h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.ticker-info .company-name{color:var(--text-muted);font-size:.8rem}.price-info{text-align:right}.current-price{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.price-change{font-size:.9rem;font-weight:600;display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;padding-top:1.25rem;border-top:1px solid var(--border-color)}.meta-item label{display:flex;align-items:center;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem}.meta-item .value{font-size:.8rem;font-weight:600;color:var(--text-primary)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1.25rem;padding:0 1.25rem}.data-table{width:100%;min-width:600px;border-collapse:collapse}.data-table thead{position:sticky;top:0;z-index:10}.data-table th{background:var(--bg-hover);color:var(--text-muted);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.data-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:.75rem}.data-table tbody tr:hover{background:var(--bg-hover)}.returns-matrix{border-collapse:collapse;font-variant-numeric:tabular-nums}.returns-matrix th,.returns-matrix td{font-size:.7rem;padding:.35rem .4rem;text-align:center;white-space:nowrap;min-width:3.2rem}.returns-cell-year-col{position:sticky;left:0;z-index:5;background:var(--bg-secondary);font-weight:600;min-width:3rem;text-align:left!important}.returns-cell-q{border-left:2px solid var(--border-color);font-weight:500}.returns-cell-total{border-left:2px solid var(--border-color);font-weight:600}.returns-avg-row td{border-top:2px solid var(--border-color);font-weight:500}.returns-matrix thead th,.returns-matrix thead .returns-cell-year-col{background:var(--bg-hover)}.returns-cell-current{outline:2px solid var(--primary);outline-offset:-2px;border-radius:3px}.heatmap-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1.25rem;padding:0 1.25rem 1rem}.heatmap-table{width:100%;min-width:500px;border-collapse:collapse;font-size:.7rem}.heatmap-table th{padding:.375rem;text-align:center;font-weight:600;color:var(--text-muted);font-size:.6rem;text-transform:uppercase}.heatmap-table td{padding:.375rem;text-align:center;font-weight:500;border:1px solid var(--border-color)}.heatmap-table td.row-label{text-align:left;font-weight:600;color:var(--text-muted);font-size:.6rem;text-transform:uppercase;background:transparent;border:none;padding-right:.75rem;white-space:nowrap}.heat-90{background:#2dce89cc;color:#fff}.heat-80{background:#2dce8999;color:#fff}.heat-70{background:#2dce8966;color:var(--text-primary)}.heat-60{background:#2dce8933;color:var(--text-primary)}.heat-50{background:#8898aa1a;color:var(--text-secondary)}.heat-40{background:#f5365c33;color:var(--text-primary)}.heat-30{background:#f5365c66;color:#fff}.heatmap-cell{position:relative}.heatmap-cell:hover:after{content:attr(data-tip);position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--bg-card);color:var(--text-primary);font-size:.65rem;font-weight:600;padding:.2rem .4rem;border-radius:4px;border:1px solid var(--border-color);white-space:nowrap;pointer-events:none;z-index:100}.performance-grid{display:flex;flex-wrap:wrap;gap:.5rem}.performance-item{flex:1 1 70px;min-width:70px;max-width:100px;padding:.625rem;background:var(--bg-hover);border-radius:.5rem;text-align:center;transition:transform .15s ease}.performance-item:hover{transform:translateY(-2px);background:var(--bg-secondary)}.performance-item .year{font-size:.6rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);margin-bottom:.125rem}.performance-item .value{font-size:.8rem;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.8rem;font-weight:600;border-radius:.375rem;border:none;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 6px #32325d1c}.btn-primary:hover{transform:translateY(-1px);background:var(--primary-dark)}.btn-secondary{background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-secondary)}.btn-sm{padding:.25rem .625rem;font-size:.7rem}.btn-group{display:inline-flex;border-radius:.375rem;overflow:hidden;box-shadow:0 1px 3px #00000014;flex-wrap:wrap}.btn-group .btn{border-radius:0;border-right:1px solid rgba(0,0,0,.1)}.btn-group .btn:first-child{border-radius:.375rem 0 0 .375rem}.btn-group .btn:last-child{border-radius:0 .375rem .375rem 0;border-right:none}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.7rem;font-weight:600;border-radius:.375rem}.badge-success{background:#2dce891a;color:var(--success)}.badge-warning{background:#fb63401a;color:var(--warning)}.badge-danger{background:#f5365c1a;color:var(--danger)}.badge-info{background:#11cdef1a;color:var(--info)}.badge-primary{background:#5e72e41a;color:var(--primary)}.badge-muted{background:#6e76811a;color:var(--text-muted)}.form-control,.form-select{width:100%;padding:.5rem .75rem;font-size:.8rem;border:1px solid var(--border-color);border-radius:.375rem;background:var(--bg-input);color:var(--text-primary);transition:all .15s ease}.form-control:focus,.form-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #5e72e426}.form-select{padding-right:2rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238b949e' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px 12px;appearance:none;cursor:pointer}.simulator-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column}.form-label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.375rem}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}[data-theme=light] input[type=date]::-webkit-calendar-picker-indicator{filter:none}.text-success{color:var(--success)!important}.text-danger{color:var(--danger)!important}.text-warning{color:var(--warning)!important}.text-muted{color:var(--text-muted)!important}.loading-skeleton{display:flex;flex-direction:column;gap:1.5rem}.skeleton-header{height:180px;border-radius:.75rem}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.skeleton-card{height:80px;border-radius:.75rem}.skeleton{background:linear-gradient(90deg,var(--skeleton-from) 25%,var(--skeleton-via) 50%,var(--skeleton-from) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{padding:3rem;text-align:center}.empty-state h2{color:var(--text-primary);margin-bottom:.5rem;font-size:1.25rem}.empty-state p{color:var(--text-muted)}.fade-in{animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.tabular-nums{font-variant-numeric:tabular-nums}.dashboard-builder{width:100%}.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dashboard-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.75rem;font-weight:500;border:1px solid var(--border-color);border-radius:.375rem;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.dashboard-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--primary)}.dashboard-btn:disabled{opacity:.4;cursor:not-allowed}.dashboard-btn-active{background:var(--primary);color:#fff;border-color:var(--primary)}.dashboard-btn-active:hover{background:var(--primary-dark);color:#fff}.dashboard-add-menu{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 8px 24px #0000004d;min-width:180px;z-index:100;padding:.25rem}.dashboard-add-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;font-size:.78rem;color:var(--text-secondary);background:none;border:none;border-radius:.375rem;cursor:pointer;transition:all .15s ease;text-align:left}.dashboard-add-item:hover{background:var(--bg-hover);color:var(--text-primary)}.dashboard-grid{margin:0 -8px}.widget-grid-item{overflow:visible}.widget-wrapper{height:100%;display:flex;flex-direction:column;margin-bottom:0}.widget-wrapper.widget-transparent{background:transparent;box-shadow:none;border:none}.widget-transparent .widget-header{border-bottom:none;padding-left:0}.widget-transparent .widget-body{padding-left:0;padding-right:0;overflow:visible}.widget-wrapper.widget-editing{outline:1px dashed var(--border-color);outline-offset:-1px}.widget-header{display:flex;justify-content:space-between;align-items:center;padding:.375rem .75rem;border-bottom:1px solid var(--border-subtle);flex-shrink:0;min-height:32px}.widget-drag-handle{cursor:grab}.widget-drag-handle:active{cursor:grabbing}.widget-body{flex:1;overflow:auto;padding:.375rem .75rem;min-height:0}.pf-summary-compact{display:flex;flex-direction:column;gap:.6rem;height:100%}.pf-summary-main{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.pf-summary-value{font-size:1.1rem;font-weight:700;color:var(--text-primary);line-height:1}.pf-summary-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .45rem;border-radius:.3rem;font-size:.72rem;font-weight:600;line-height:1}.pf-summary-badge.positive{background:#2dce891f;color:var(--success)}.pf-summary-badge.negative{background:#f536561f;color:var(--danger)}.pf-summary-rows{display:flex;flex-direction:column;gap:.3rem}.pf-summary-row{display:flex;justify-content:space-between;align-items:center}.pf-summary-row-label{font-size:.7rem;color:var(--text-muted)}.pf-summary-row-value{font-size:.8rem;font-weight:600;color:var(--text-primary)}.widget-remove-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:.25rem;background:none;color:var(--text-muted);cursor:pointer;transition:all .15s ease;flex-shrink:0}.widget-remove-btn:hover{background:#f5365626;color:var(--danger)}.widget-mover-row:hover{background:var(--bg-hover)}.watchlist-container{position:relative;height:100%;padding:.25rem 0;overflow:visible}.watchlist-edit-btn{position:absolute;top:-.25rem;right:-.25rem;z-index:2;width:26px;height:26px;border-radius:.375rem;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.watchlist-edit-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-muted)}.watchlist-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-content:start}.watchlist-tile{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.75rem;padding:.875rem;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:.625rem;min-width:0;overflow:hidden;box-shadow:0 1px 3px #0000000a}.watchlist-tile:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.watchlist-tile-header{display:flex;align-items:center;gap:.625rem}.watchlist-logo{width:36px;height:36px;border-radius:.5rem;background:#fff;object-fit:contain;flex-shrink:0}.watchlist-logo-fallback{width:36px;height:36px;border-radius:.5rem;background:var(--bg-hover);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;text-transform:uppercase}.watchlist-tile-info{display:flex;flex-direction:column;min-width:0}.watchlist-ticker{font-weight:700;font-size:.85rem;color:var(--text-primary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watchlist-name{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.watchlist-tile-body{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}.watchlist-price{font-weight:700;font-size:.95rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.watchlist-change{font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.watchlist-change.positive{background:#00d1641f;color:var(--success)}.watchlist-change.negative{background:#f536561f;color:var(--danger)}.watchlist-picker{height:100%;overflow:auto}.watchlist-chip-grid{display:flex;flex-wrap:wrap;gap:.375rem}.watchlist-chip{padding:.3rem .65rem;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease}.watchlist-chip:hover:not(.disabled){border-color:var(--primary);color:var(--primary)}.watchlist-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.watchlist-chip.disabled{opacity:.35;cursor:not-allowed}@media(max-width:900px){.watchlist-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.watchlist-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.watchlist-tile{padding:.625rem}.watchlist-logo,.watchlist-logo-fallback{width:28px;height:28px}.watchlist-price{font-size:.8rem}.pf-summary-value{font-size:1rem}}.react-grid-item{transition:all .2s ease}.react-grid-item.react-grid-placeholder{background:var(--primary)!important;opacity:.15;border-radius:.75rem}.react-grid-item>.react-resizable-handle{display:none!important;width:7px!important;height:7px!important;right:4px!important;bottom:4px!important}@media(max-width:1024px){:root{--sidebar-width: 240px}.main-content,.chart-body{padding:1rem}}@media(max-width:768px){:root{--sidebar-width: 0px}.sidebar{transform:translate(-100%);width:260px}.sidebar.collapsed{transform:translate(-100%)}.sidebar:not(.collapsed){transform:translate(0)}.main-content{margin-left:0;padding:1rem}.app-container.sidebar-collapsed .main-content{padding-left:1rem}.topbar-search{max-width:200px}.category-nav,.topbar-market{display:none}.ticker-row{flex-direction:column}.price-info{text-align:left}.chart-header{flex-direction:column;align-items:flex-start}.btn-group{width:100%;justify-content:center}.meta-grid{grid-template-columns:repeat(2,1fr)}.stat-card{flex-direction:column;text-align:center;gap:.75rem;padding:.875rem}.chart-body>div[style*=grid-template-columns]{grid-template-columns:1fr!important}}@media(max-width:480px){.current-price{font-size:1.5rem}.meta-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.performance-item{min-width:60px;padding:.5rem}.btn-group .btn{padding:.25rem .5rem;font-size:.65rem}}.theme-toggle{width:32px;height:32px;border-radius:.375rem;background:none;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all .15s ease;flex-shrink:0}.theme-toggle:hover{background:var(--bg-hover);color:var(--warning);border-color:var(--warning)}[data-theme=light] .form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%234b5563' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e")}@media print{.topbar,.sidebar{display:none}.main-content{margin-left:0;padding:0}.app-container{padding-top:0}.chart-card{break-inside:avoid;box-shadow:none;border:1px solid #e9ecef}}
