*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0c1017;--bg-secondary: #141a24;--bg-card: #1a2133;--bg-elevated: #1f2940;--text-primary: #e8ecf1;--text-secondary: #6b7a8d;--text-muted: #4a5568;--accent: #4f8cff;--accent-hover: #3d7be8;--accent-glow: rgba(79, 140, 255, .12);--positive: #22c55e;--positive-dim: rgba(34, 197, 94, .12);--negative: #ef4444;--negative-dim: rgba(239, 68, 68, .12);--border: #1e293b;--border-light: #2a3650;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{max-width:1080px;margin:0 auto;padding:32px 24px 64px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px;padding-bottom:24px;border-bottom:1px solid var(--border)}.header-left{text-align:left}.header-brand{display:flex;align-items:center;gap:5px}.app-logo{width:22px;height:22px;flex-shrink:0}.header h1{font-size:19px;font-weight:700;letter-spacing:-.01em;color:#4f8cff;line-height:1;position:relative;left:-4px;top:1px}.header-right{display:flex;align-items:center;gap:16px}.user-greeting{color:var(--text-secondary);font-size:.85rem;font-weight:500}.logout-btn{background:transparent;border:1px solid var(--border-light);color:var(--text-secondary);padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:500;font-family:inherit;transition:all .2s}.logout-btn:hover{border-color:var(--negative);color:var(--negative);background:var(--negative-dim)}.search-container{position:relative;margin-bottom:28px}.search-input{width:100%;padding:14px 20px;font-size:.95rem;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.search-input::placeholder{color:var(--text-muted)}.suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;z-index:10;box-shadow:var(--shadow-lg)}.suggestion-item{padding:11px 20px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .12s;border-bottom:1px solid var(--border)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.selected{background:var(--accent-glow)}.suggestion-item .symbol{font-weight:600;font-size:.9rem;color:var(--accent)}.suggestion-item .description{color:var(--text-secondary);font-size:.82rem;max-width:60%;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:28px 32px;border:1px solid var(--border-light);box-shadow:var(--shadow-md)}.quote-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px}.quote-title{display:flex;flex-direction:column;gap:2px}.quote-symbol{font-size:1.75rem;font-weight:800;letter-spacing:-.02em}.etf-badge{font-size:.42em;font-weight:700;color:var(--accent);margin-left:9px;vertical-align:super;letter-spacing:.5px;position:relative;top:-4px}.quote-name{font-size:.88rem;color:var(--text-secondary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.quote-exchange{font-size:.7rem;font-weight:600;color:var(--accent);background:var(--accent-glow);padding:3px 10px;border-radius:5px;text-transform:uppercase;letter-spacing:.6px}.market-status{display:flex;align-items:center;gap:5px;font-size:.7rem;font-weight:600;letter-spacing:.3px}.market-status-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.market-status.open{color:var(--positive)}.market-status.open .market-status-dot{background:var(--positive);box-shadow:0 0 6px var(--positive)}.market-status.closed{color:var(--text-muted)}.market-status.closed .market-status-dot{background:var(--text-muted)}.last-update{font-size:.72rem;color:var(--text-muted)}.quote-price{font-size:2.75rem;font-weight:800;letter-spacing:-.03em;margin-bottom:4px}.quote-change{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:600;margin-bottom:4px}.quote-change.positive{color:var(--positive)}.quote-change.negative{color:var(--negative)}.chart-tabs{display:flex;gap:0;margin-top:24px;margin-bottom:0}.chart-tab{padding:8px 22px;font-size:.8rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:transparent;border:1px solid var(--border-light);cursor:pointer;transition:all .15s ease;letter-spacing:.02em}.chart-tab:first-child{border-radius:var(--radius-sm) 0 0 0;border-right:none}.chart-tab:last-child{border-radius:0 var(--radius-sm) 0 0}.chart-tab.active{color:var(--text-primary);background:var(--bg-secondary);border-bottom-color:var(--bg-secondary)}.chart-tab:not(.active):hover{color:var(--text-secondary);background:var(--accent-glow)}.interval-selector{display:flex;gap:0;margin:8px 0 4px}.interval-btn{padding:4px 12px;font-size:.7rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:transparent;border:1px solid var(--border-light);cursor:pointer;transition:all .15s;letter-spacing:.02em}.interval-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.interval-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.interval-btn:not(:first-child){border-left:none}.interval-btn.active{color:var(--text-primary);background:var(--bg-secondary)}.interval-btn:not(.active):hover{color:var(--text-secondary);background:var(--accent-glow)}.candlestick-chart{padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-light);overflow:visible;margin-top:0}.chart-header{display:flex;justify-content:flex-end;margin-bottom:8px}.chart-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.chart-price-label{display:flex;align-items:center;gap:8px}.chart-high-price{font-size:.82rem;font-weight:600;color:var(--positive)}.candlestick-chart svg{width:100%;height:160px;display:block;overflow:visible}.chart-footer{display:flex;justify-content:space-between;align-items:flex-start;margin-top:12px}.chart-times-row{display:flex;align-items:center;gap:12px}.chart-times{display:flex;gap:8px;font-size:.72rem;color:var(--text-muted)}.chart-times span:first-child:after{content:" →"}.chart-mode-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:4px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.chart-mode-toggle:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--accent)}.chart-mode-toggle.active{background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.chart-mode-toggle svg{width:16px;height:16px}.chart-low-price{font-size:.82rem;font-weight:600;color:var(--negative)}.chart-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px;background:var(--bg-secondary);border-radius:0 0 var(--radius-md) var(--radius-md);border:1px solid var(--border-light);border-top:none}.chart-loader-svg{width:180px;height:60px}.chart-loader-text{color:var(--text-muted);font-size:.82rem;margin-top:12px}.daily-chart-wrapper{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-light);padding:16px}.daily-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.zoom-hint{font-size:.68rem;color:var(--text-muted);opacity:.7;letter-spacing:.01em}.daily-chart-body{display:flex;gap:0}.daily-chart-container{overflow-x:auto;overflow-y:hidden;cursor:grab;border-radius:var(--radius-sm) 0 0 var(--radius-sm);scrollbar-width:none;flex:1;min-width:0;touch-action:none}.daily-chart-container::-webkit-scrollbar{display:none}.daily-chart-y-axis{position:relative;width:72px;flex-shrink:0;border-left:1px solid var(--border)}.y-axis-label{position:absolute;right:8px;transform:translateY(-50%);font-size:.68rem;color:var(--text-muted);font-family:Inter,sans-serif;white-space:nowrap;font-weight:500}.y-axis-high{color:var(--positive);font-weight:600}.y-axis-low{color:var(--negative);font-weight:600}.y-axis-current{color:var(--accent);font-weight:600;font-size:.72rem}.daily-chart-footer{margin-top:8px}.chart-date-range{font-size:.72rem;color:var(--text-muted)}.details-toggle{display:flex;align-items:center;gap:8px;margin-top:20px;padding:8px 0;background:none;border:none;color:var(--text-muted);font-size:.82rem;cursor:pointer;width:100%;text-align:left;font-family:inherit;letter-spacing:.02em}.details-toggle:hover{color:var(--text-primary)}.details-toggle-arrow{display:inline-block;font-size:.6rem;transition:transform .3s ease}.details-toggle-arrow.expanded{transform:rotate(90deg)}.details-collapse{overflow:hidden;transition:height .3s ease}.quote-details{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.detail-item{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border)}.detail-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.detail-value{font-size:1.1rem;font-weight:700;letter-spacing:-.01em}.loading{text-align:center;padding:48px;color:var(--text-secondary)}.spinner{width:36px;height:36px;border:2.5px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .25s ease-out}.error{background:var(--negative-dim);border:1px solid rgba(239,68,68,.3);color:var(--negative);padding:14px 20px;border-radius:var(--radius-md);text-align:center;font-size:.9rem}.empty-state{text-align:center;padding:64px 20px;color:var(--text-muted)}.empty-state svg{width:56px;height:56px;margin-bottom:16px;opacity:.4}.empty-state h3{font-size:1.1rem;margin-bottom:6px;color:var(--text-secondary);font-weight:600}.empty-state p{font-size:.9rem}.auth-container{display:flex;justify-content:center;padding-top:24px}.auth-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.auth-card h2{font-size:1.35rem;font-weight:700;margin-bottom:28px;text-align:center;letter-spacing:-.02em}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field label{font-size:.78rem;color:var(--text-secondary);font-weight:500;letter-spacing:.01em}.auth-field input{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:11px 14px;color:var(--text-primary);font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.password-requirements{display:flex;flex-wrap:wrap;gap:3px 14px;padding:6px 0 0}.req-item{font-size:.72rem;color:var(--text-muted);display:flex;align-items:center;gap:5px;transition:color .2s}.req-item.met{color:var(--positive)}.req-icon{font-size:.75rem;width:14px;text-align:center}.auth-error{background:var(--negative-dim);border:1px solid rgba(239,68,68,.3);color:var(--negative);padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;text-align:center}.auth-invite-only{background:#4f8cff14;border:1px solid rgba(79,140,255,.25);border-radius:var(--radius-sm);padding:10px 14px;margin-top:8px;text-align:center;display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.auth-invite-only svg{color:var(--accent);opacity:.7;flex-shrink:0}.auth-invite-only p{margin:0;font-size:.82rem;line-height:1.4}.auth-submit{background:linear-gradient(135deg,#4f8cff,#6366f1);color:#fff;border:none;border-radius:var(--radius-sm);padding:12px;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s,transform .1s;margin-top:4px}.auth-submit:hover:not(:disabled){opacity:.9}.auth-submit:active:not(:disabled){transform:scale(.99)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-switch{margin-top:24px;text-align:center;font-size:.85rem;color:var(--text-muted)}.auth-switch button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:inherit;font-family:inherit;font-weight:600;padding:0}.auth-switch button:hover{text-decoration:underline}.nav-bar{display:flex;gap:0;margin-bottom:28px;border-bottom:1px solid var(--border)}.nav-tab{padding:10px 24px;font-size:.85rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s ease;letter-spacing:.01em}.nav-tab:hover{color:var(--text-secondary)}.nav-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.watchlist-view{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-light);box-shadow:var(--shadow-md);overflow:hidden}.wl-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.wl-pills{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.wl-pill{padding:6px 14px;font-size:.8rem;font-weight:600;font-family:inherit;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:6px}.wl-pill:hover{border-color:var(--accent);color:var(--text-primary)}.wl-pill.active{background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.wl-pill-count{font-size:.7rem;background:var(--bg-primary);padding:1px 6px;border-radius:10px;color:var(--text-muted);font-weight:500}.wl-pill.active .wl-pill-count{background:#4f8cff33;color:var(--accent)}.wl-pill-rename{font-size:.85rem;padding:6px 14px;border-radius:20px;border:1.5px solid var(--accent);background:var(--bg-card);color:var(--text-primary);outline:none;font-family:inherit;min-width:60px;max-width:200px}.wl-pill.dragging{opacity:.4}.wl-pill.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.wl-pill[draggable=true]{cursor:grab}.wl-pill[draggable=true]:active{cursor:grabbing}.wl-pill-add{color:var(--accent);border-style:dashed;background:transparent}.wl-pill-add:hover{background:var(--accent-glow)}.wl-inline-create{display:flex;align-items:center;gap:4px}.wl-inline-create input{width:120px;padding:5px 10px;font-size:.8rem;font-family:inherit;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:16px;color:var(--text-primary);outline:none}.wl-inline-create input:focus{border-color:var(--accent)}.wl-inline-create button{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);cursor:pointer;padding:0;transition:all .15s}.wl-inline-create button[type=submit]{color:var(--positive);border-color:var(--positive)}.wl-inline-create button[type=submit]:hover{background:var(--positive-dim)}.wl-inline-create button[type=button]:hover{background:var(--negative-dim);color:var(--negative);border-color:var(--negative)}.wl-delete-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.wl-delete-btn:hover{background:var(--negative-dim);color:var(--negative);border-color:var(--negative)}.wl-create-btn{margin-top:16px;padding:10px 24px;font-size:.9rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,#4f8cff,#6366f1);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .2s}.wl-create-btn:hover{opacity:.9}.wl-create-form{display:flex;align-items:center;gap:8px;margin-top:16px}.wl-create-form input{padding:8px 14px;font-size:.9rem;font-family:inherit;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-primary);outline:none}.wl-create-form input:focus{border-color:var(--accent)}.wl-create-form button{padding:8px 16px;font-size:.85rem;font-weight:600;font-family:inherit;border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);transition:all .15s}.wl-create-form button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent)}.add-symbol-row{display:block;width:100%;padding:12px;background:linear-gradient(180deg,#4f8cff2e,#4f8cff14);border:none;border-radius:0 0 8px 8px;color:var(--accent);font-size:.88rem;font-weight:600;text-align:center;cursor:pointer;letter-spacing:.02em;box-shadow:inset 0 1px #ffffff0f,0 1px 3px #0003;transition:background .15s,color .15s,box-shadow .15s}.add-symbol-row:hover{background:linear-gradient(180deg,#4f8cff4d,#4f8cff26);color:#fff;box-shadow:inset 0 1px #ffffff1a,0 2px 6px #0000004d}.add-symbol-row:active{background:linear-gradient(180deg,#4f8cff1a,#4f8cff33);box-shadow:inset 0 2px 4px #0000004d}.wl-empty-table{text-align:center;padding:40px 16px;color:var(--text-muted);font-size:.9rem}.wl-table{width:100%;border-collapse:collapse}.wl-table th{padding:10px 12px;font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600;text-align:left;border-bottom:1px solid var(--border)}.wl-table th.num,.wl-table td.num{text-align:left}.wl-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.wl-sortable:hover{color:var(--text-primary)}.wl-sort-arrow{display:inline-block;width:0;height:0;margin-left:5px;vertical-align:middle;border-left:3.5px solid transparent;border-right:3.5px solid transparent;opacity:0;transition:opacity .15s,transform .15s}.wl-sortable:hover .wl-sort-arrow:not(.asc):not(.desc){opacity:.3;border-bottom:4px solid currentColor}.wl-sort-arrow.asc{opacity:1;border-bottom:4px solid var(--accent);border-top:none}.wl-sort-arrow.desc{opacity:1;border-top:4px solid var(--accent);border-bottom:none}.wl-grip.disabled{opacity:.15!important;cursor:default;pointer-events:none}.wl-row{cursor:pointer;transition:background .12s}.wl-row:hover{background:var(--accent-glow)}.wl-row td{padding:12px;font-size:.88rem;border-bottom:1px solid var(--border)}.wl-row:last-child td{border-bottom:none}.wl-ticker{font-weight:700;color:var(--accent);letter-spacing:-.01em}.wl-name{color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-row td.pos{color:var(--positive);font-weight:600}.wl-row td.neg{color:var(--negative);font-weight:600}th.wl-col-remove{text-align:center;width:36px}.wl-remove{background:transparent;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s}.wl-grip-col{width:28px}.wl-grip{width:28px;color:var(--text-muted);cursor:grab;text-align:center;padding-left:4px!important;padding-right:0!important;opacity:.4;transition:opacity .15s}.wl-row:hover .wl-grip{opacity:1}.wl-grip:active{cursor:grabbing}.wl-row.row-dragging{opacity:.35}.wl-row.row-drag-over{box-shadow:inset 0 -2px 0 var(--accent)}.wl-remove:hover{background:var(--negative-dim);color:var(--negative)}.wl-row.pending{background:#4f8cff0d}.wl-row-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin-left:8px;vertical-align:middle;position:relative;top:-1px}.wl-row.expanded{background:var(--accent-glow)}.wl-row.expanded td{border-bottom:none}.wl-expanded-row td{padding:0!important;border-bottom:none!important;max-width:1px}.wl-expand-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out}.wl-expand-wrap.open{grid-template-rows:1fr}.wl-expand-inner{overflow:hidden}.wl-expanded-row .quote-card{border-radius:0;border-left:none;border-right:none;box-shadow:none;background:var(--bg-secondary)}.wl-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.col-config-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.col-config-btn:hover{background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.col-config-popover{position:fixed;min-width:200px;max-height:320px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;padding:4px 0;scrollbar-width:thin}.col-config-item{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:.82rem;transition:background .1s}.col-config-item.drag-over{box-shadow:inset 0 -2px 0 var(--accent)}.col-config-item.dragging{opacity:.35}.col-config-item.unchecked .col-config-label{color:var(--text-muted);opacity:.5}.col-config-item.locked .col-config-grip{opacity:.15;cursor:default;pointer-events:none}.col-config-grip{color:var(--text-muted);cursor:grab;opacity:.4;transition:opacity .15s;flex-shrink:0;display:flex;align-items:center}.col-config-item:hover .col-config-grip{opacity:1}.col-config-grip:active{cursor:grabbing}.col-config-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-primary);font-weight:500;-webkit-user-select:none;user-select:none;flex:1}.col-config-label input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;cursor:pointer}.col-config-label input[type=checkbox]:disabled{cursor:default;opacity:.4}.portfolio-view{overflow-x:auto}.pf-summary-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px}.pf-summary-main{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.pf-summary-values{flex:1;min-width:0}.pf-summary-mv{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}.pf-summary-label{font-size:1.44rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.pf-summary-big{font-size:3.6rem;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.pf-summary-pl-row{display:flex;gap:28px}.pf-summary-pl{display:flex;flex-direction:column;gap:2px}.pf-summary-pl-val{font-size:2rem;font-weight:600}.pf-summary-pl.pos .pf-summary-pl-val{color:var(--positive)}.pf-summary-pl.neg .pf-summary-pl-val{color:var(--negative)}.pf-summary-beta .pf-summary-pl-val{color:var(--text-primary)}.pf-summary-pl-pct{font-weight:400;font-size:1.7rem;opacity:.8}.pf-chart-toggle{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#14b8a626,#06b6d41a);border:1px solid rgba(20,184,166,.35);border-radius:var(--radius-sm);color:#5eead4;font-size:.78rem;font-weight:600;font-family:inherit;padding:7px 16px;cursor:pointer;transition:all .15s}.pf-chart-toggle:hover{background:linear-gradient(135deg,#14b8a640,#06b6d42e);border-color:#14b8a68c;box-shadow:0 2px 12px #14b8a626}.pf-chart-toggle-icon{width:15px;height:15px;flex-shrink:0}.pf-chart-toggle-arrow{display:inline-block;transition:transform .3s ease;font-size:.6rem;opacity:.7}.pf-chart-toggle-arrow.expanded{transform:rotate(180deg)}.pf-chart-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}.pf-chart-collapse.open{grid-template-rows:1fr}.pf-chart-collapse{width:100%}.pf-chart-collapse-inner{overflow:hidden}.pf-summary-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;width:100%;align-self:stretch}.pf-analyze-btn{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#4f8cff,#6c5ce7);color:#fff;border:none;border-radius:var(--radius-sm);padding:7px 16px;font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.pf-analyze-btn:hover{filter:brightness(1.15);box-shadow:0 2px 12px #4f8cff4d}.pf-analyze-btn svg{width:16px;height:16px}.pa-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.pa-dialog{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0006}.pa-header{display:flex;align-items:baseline;gap:12px;padding:20px 24px 0;position:relative}.pa-title{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0}.pa-subtitle{font-size:.85rem;color:var(--text-muted)}.pa-close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0 4px;line-height:1}.pa-close:hover{color:var(--text-primary)}.pa-tabs{display:flex;gap:0;padding:16px 24px 0;border-bottom:1px solid var(--border)}.pa-tab{display:inline-flex;align-items:center;padding:8px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:.82rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s;margin-bottom:-1px}.pa-tab:hover{color:var(--text-primary)}.pa-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.pa-tab-info-wrap{position:relative;display:inline-flex;align-items:center;margin-left:5px;cursor:default}.pa-tab-info-icon{width:12px;height:12px;color:var(--text-muted, #6e7681);opacity:.6;transition:opacity .15s}.pa-tab-info-wrap:hover .pa-tab-info-icon{opacity:1}.pa-tab-info-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 16px #00000059;padding:10px 14px;font-size:.74rem;line-height:1.5;color:var(--text-secondary);width:260px;z-index:30;text-align:left;font-weight:400}.pa-tab-info-wrap:hover .pa-tab-info-tooltip,.pa-tab-info-wrap:focus-within .pa-tab-info-tooltip,.pa-tab-info-wrap.touched .pa-tab-info-tooltip{display:block}@media (max-width: 600px){.pa-tab-info-tooltip{left:0;transform:none;width:220px}}.pa-content{flex:1;overflow-y:auto;padding:24px 24px 12px;min-height:300px}.pa-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;gap:20px}.pa-loading-svg{width:140px;height:100px}.pa-bar{animation:pa-pulse 1.2s ease-in-out infinite;transform-origin:bottom center}.pa-bar-1{animation-delay:0s}.pa-bar-2{animation-delay:.15s}.pa-bar-3{animation-delay:.3s}.pa-bar-4{animation-delay:.45s}.pa-bar-5{animation-delay:.6s}@keyframes pa-pulse{0%,to{transform:scaleY(1);opacity:.7}50%{transform:scaleY(1.3);opacity:1}}.pa-line-anim{stroke-dasharray:200;stroke-dashoffset:200;animation:pa-draw 2s ease-in-out infinite}@keyframes pa-draw{0%{stroke-dashoffset:200}50%{stroke-dashoffset:0}to{stroke-dashoffset:-200}}.pa-loading-text{color:var(--text-muted);font-size:.88rem;margin:0;letter-spacing:.02em}.pa-error{color:var(--negative);text-align:center;padding:40px 20px}.pa-legend{display:flex;gap:0;justify-content:center;align-items:center;flex-wrap:wrap;padding:16px 0}.pa-legend-section{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pa-legend-separator{width:1px;height:22px;border-left:1px dashed var(--text-muted, #6e7681);margin:0 14px;opacity:.5}.pa-legend-item{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-secondary);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .2s;-webkit-tap-highlight-color:transparent;position:relative}.pa-legend-item:hover,.pa-legend-item.highlighted{color:var(--text-primary);background:var(--bg-secondary)}.pa-legend-item.dimmed{opacity:.35}.pa-legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.pa-legend-label.editable{cursor:text;border-bottom:1px dashed var(--text-muted, #6e7681)}.pa-legend-edit-input{background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.78rem;padding:1px 4px;width:60px;outline:none;font-family:inherit}.pa-legend-remove{background:none;border:none;color:var(--text-muted, #6e7681);font-size:.95rem;cursor:pointer;padding:0 2px;line-height:1;opacity:0;transition:opacity .15s}.pa-legend-item:hover .pa-legend-remove{opacity:1}@media (max-width: 600px){.pa-legend-remove{opacity:.7}}.pa-legend-add{background:none;border:1px dashed var(--text-muted, #6e7681);color:var(--text-muted, #6e7681);font-size:.9rem;cursor:pointer;padding:2px 10px;border-radius:var(--radius-sm);line-height:1.4;transition:all .15s}.pa-legend-add:hover{border-color:var(--accent);color:var(--accent)}.pa-legend-add-pf-wrap{position:relative;z-index:10}.pa-legend-add-pf{display:flex;align-items:center;gap:2px}.pa-pf-picker{position:absolute;bottom:calc(100% + 6px);left:0;min-width:180px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 6px 24px #00000059;z-index:20;padding:4px 0;max-height:200px;overflow-y:auto}.pa-pf-picker-item{display:block;width:100%;text-align:left;padding:8px 14px;background:none;border:none;color:var(--text-primary);font-size:.82rem;cursor:pointer;transition:background .12s}.pa-pf-picker-item:hover{background:var(--bg-secondary)}.pa-pf-picker-empty{padding:12px 14px;font-size:.78rem;color:var(--text-secondary);text-align:center;line-height:1.4}.retro-span-selector{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;align-self:flex-start;margin-bottom:16px;width:fit-content}.retro-span-btn{padding:5px 14px;background:transparent;border:none;border-right:1px solid var(--border);color:var(--text-muted);font-size:.75rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s}.retro-span-btn:last-child{border-right:none}.retro-span-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.retro-span-btn.active{background:var(--accent);color:#fff}.retro-chart-wrap{position:relative;width:100%}.retro-chart-svg{display:block;width:100%;cursor:crosshair;touch-action:none;-webkit-tap-highlight-color:transparent}.retro-tooltip{position:absolute;top:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;pointer-events:none;z-index:10;min-width:150px;box-shadow:0 4px 12px #0000004d}.retro-tooltip-date{font-size:.72rem;color:var(--text-muted);margin-bottom:6px;font-weight:500}.retro-tooltip-row{display:flex;align-items:center;gap:6px;font-size:.78rem;line-height:1.6}.retro-tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.retro-tooltip-label{color:var(--text-secondary);flex:1}.retro-tooltip-val{font-weight:600;font-variant-numeric:tabular-nums}.retro-tooltip-val.pos{color:var(--positive)}.retro-tooltip-val.neg{color:var(--negative)}.pf-pie-mode-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;align-self:center}.pf-pie-mode-toggle button{background:transparent;border:none;color:var(--text-muted);font-size:.78rem;font-weight:500;padding:5px 14px;cursor:pointer;transition:all .15s}.pf-pie-mode-toggle button:not(:last-child){border-right:1px solid var(--border)}.pf-pie-mode-toggle button.active{background:var(--accent-glow);color:var(--accent);font-weight:600}.pf-pie-mode-toggle button:hover:not(.active){background:var(--bg-secondary);color:var(--text-primary)}.pf-pie-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;flex-shrink:0}.pf-pie-svg{width:480px;height:480px;-webkit-tap-highlight-color:transparent}.pf-pie-info{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;text-align:center}.pf-pie-info-symbol{font-size:14px;font-weight:700;letter-spacing:.3px;line-height:1.2}.pf-pie-info-pct{font-size:18px;font-weight:700;color:var(--text-primary);line-height:1.2}.pf-pie-info-value{font-size:10px;color:var(--text-muted);line-height:1.3}.pf-pie-info-hint{font-size:11px;color:var(--text-muted);font-style:italic}.portfolio-view .wl-table th,.portfolio-view .wl-table td{white-space:nowrap;padding:10px 8px;font-size:.82rem}.pf-editable-value{cursor:text;padding:2px 4px;border-radius:4px;transition:background .12s}.pf-editable-value:hover{background:var(--accent-glow)}.pf-inline-edit{width:80px;padding:3px 6px;font-size:.85rem;font-family:inherit;background:var(--bg-primary);border:1px solid var(--accent);border-radius:4px;color:var(--text-primary);outline:none;text-align:left}.pf-inline-edit:focus{box-shadow:0 0 0 2px var(--accent-glow)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;min-width:320px;max-width:400px;box-shadow:0 20px 60px #0006}.confirm-message{font-size:1rem;color:var(--text-primary);margin:0 0 20px;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-cancel,.confirm-ok{padding:8px 20px;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.confirm-cancel{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary)}.confirm-cancel:hover{color:var(--text-primary);border-color:var(--text-muted)}.confirm-ok{background:var(--negative);border:none;color:#fff}.confirm-ok:hover{opacity:.85}.etf-show-holdings-btn{background:transparent;border:1px solid var(--accent);color:var(--accent);font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;margin-top:4px;align-self:flex-start}.etf-show-holdings-btn:hover{background:var(--accent);color:#fff}.etf-holdings-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0006;width:90vw;max-width:900px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.etf-holdings-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid var(--border)}.etf-holdings-header>div{display:flex;flex-direction:column;gap:2px}.etf-holdings-title{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.etf-holdings-subtitle{font-size:.82rem;color:var(--text-secondary)}.etf-holdings-close{background:none;border:none;color:var(--text-muted);font-size:1.6rem;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.etf-holdings-close:hover{color:var(--text-primary)}.etf-holdings-table-wrap{overflow-y:auto;flex:1;padding:0 0 8px}.etf-holdings-table{margin:0}.etf-holdings-table .wl-row.clickable{cursor:pointer}.etf-holdings-table .wl-row.clickable:hover{background:var(--bg-hover)}.etf-holdings-dialog.mobile{width:96vw;max-height:90vh}.etf-holdings-dialog.mobile .etf-holdings-header{padding:14px 16px 10px}.etf-holdings-dialog.mobile .etf-holdings-title{font-size:.95rem}.etf-holdings-dialog.mobile .wl-table{font-size:.72rem}.etf-h-name{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.etf-holdings-table col.col-name{width:40%}.pf-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.pf-modal{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:28px 32px;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}.pf-modal h3{font-size:1.05rem;font-weight:700;margin-bottom:20px;color:var(--text-primary)}.pf-modal-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.pf-modal-field label{font-size:.78rem;color:var(--text-secondary);font-weight:500}.pf-modal-field select,.pf-modal-field input{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text-primary);font-size:.9rem;font-family:inherit;outline:none;transition:border-color .2s}.pf-modal-field select:focus,.pf-modal-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.pf-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.pf-modal-actions button{padding:8px 18px;font-size:.85rem;font-weight:600;font-family:inherit;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.pf-modal-cancel{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary)}.pf-modal-cancel:hover{color:var(--text-primary);border-color:var(--text-muted)}.pf-modal-confirm{background:linear-gradient(135deg,#4f8cff,#6366f1);border:none;color:#fff}.pf-modal-confirm:hover{opacity:.9}.pf-modal-confirm:disabled{opacity:.5;cursor:not-allowed}.atw-wrapper{position:relative;display:flex;gap:8px;margin-top:16px;margin-bottom:4px}.atw-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:600;font-family:inherit;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.atw-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.atw-btn.atw-disabled{opacity:.4;cursor:not-allowed}.atw-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:20;overflow:hidden}.atw-empty{padding:14px 16px;font-size:.82rem;color:var(--text-muted)}.atw-item{padding:10px 16px;display:flex;align-items:center;gap:10px;font-size:.85rem;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border)}.atw-item:last-child{border-bottom:none}.atw-item:hover{background:var(--accent-glow)}.atw-check{width:18px;text-align:center;font-size:.85rem;color:var(--positive);font-weight:700}@media (max-width: 600px){.app{padding:16px 10px 48px}.header{flex-direction:column;text-align:center;gap:10px;margin-bottom:24px;padding-bottom:16px}.header-left{text-align:center}.header-right{gap:10px}.user-greeting{font-size:.8rem}.nav-bar{overflow-x:auto;margin-bottom:20px;scrollbar-width:none}.nav-bar::-webkit-scrollbar{display:none}.nav-tab{padding:8px 16px;font-size:.82rem;white-space:nowrap}.search-input{padding:12px 14px;font-size:.9rem}.search-container{margin-bottom:20px}.suggestion-item{padding:10px 14px}.suggestion-item .description{max-width:50%;font-size:.78rem}.quote-card{padding:16px 14px;border-radius:var(--radius-md)}.quote-header{flex-direction:column;gap:8px;margin-bottom:14px}.quote-meta{flex-direction:row;align-items:center}.quote-symbol{font-size:1.4rem}.quote-name{font-size:.82rem;max-width:none}.quote-price{font-size:1.85rem;margin-bottom:2px}.quote-change{font-size:.92rem;gap:6px}.chart-tabs{margin-top:16px}.chart-tab{padding:7px 14px;font-size:.75rem}.interval-btn{padding:3px 8px;font-size:.65rem}.candlestick-chart{padding:10px}.candlestick-chart svg{height:120px}.chart-footer{flex-wrap:wrap;gap:6px}.chart-times{font-size:.68rem}.daily-chart-wrapper{padding:10px}.daily-chart-y-axis{width:52px}.y-axis-label{font-size:.62rem;right:4px}.zoom-hint{display:none}.chart-date-range{font-size:.68rem}.quote-details{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:6px;padding-top:10px;font-size:75%}.detail-item{padding:6px 8px}.auth-card{padding:24px 16px}.watchlist-view{padding:14px 10px;border-radius:var(--radius-md);overflow-x:hidden}.wl-header{flex-wrap:wrap;gap:10px;margin-bottom:14px;position:relative}.wl-pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.wl-pills::-webkit-scrollbar{display:none}.wl-pill{padding:5px 12px;font-size:.76rem;white-space:nowrap;flex-shrink:0}.add-symbol-row{padding:8px 6px;font-size:.72rem}.wl-delete-btn{width:26px;height:26px;font-size:1rem}.col-config-btn{width:26px;height:26px}.wl-header-actions{position:absolute;top:0;right:0}.wl-grip-col,.wl-grip{display:none}.wl-table th,.wl-row td{padding:6px 3px;font-size:.72rem;white-space:nowrap}.wl-table th{font-size:.64rem}.wl-ticker{font-size:.74rem}.wl-name{max-width:60px;overflow:hidden;text-overflow:ellipsis}.wl-remove{font-size:.8rem;padding:1px 3px}th.wl-col-remove{width:24px}th.wl-col-remove .col-config-btn{width:22px;height:22px}.pf-summary-card{padding:14px 12px}.pf-summary-main{flex-direction:column;gap:16px}.pf-summary-label{font-size:.72rem}.pf-summary-big{font-size:1.4rem}.pf-summary-pl-row{gap:20px}.pf-summary-pl-val{font-size:.88rem}.pf-summary-pl-pct{font-size:.78rem}.pf-pie-svg{width:280px;height:280px}.pf-chart-toggle{font-size:.72rem;padding:6px 12px}.pf-summary-actions{flex-wrap:wrap;gap:8px}.pf-analyze-btn{font-size:.72rem;padding:6px 12px}.pa-dialog{max-height:90vh}.pa-header{padding:16px 16px 0}.pa-title{font-size:1rem}.pa-tabs{padding:12px 16px 0}.pa-tab{padding:6px 14px;font-size:.76rem}.pa-content{padding:16px 16px 0}.portfolio-view{overflow-x:hidden}.pf-table-scroll{overflow-x:auto}.portfolio-view .wl-table th,.portfolio-view .wl-table td{padding:6px 3px;font-size:.72rem}.portfolio-view .wl-table th{font-size:.64rem}.pf-inline-edit{width:50px;font-size:.7rem;padding:2px 3px}.wl-table-scroll{overflow-x:auto}.wl-expand-wrap{position:sticky;left:0;width:calc(100vw - 42px)}.wl-expanded-row .quote-card{padding:14px 10px}.wl-expanded-row .quote-header{gap:6px;margin-bottom:10px}.wl-expanded-row .quote-symbol{font-size:1.2rem}.wl-expanded-row .quote-price{font-size:1.5rem}.wl-expanded-row .quote-change{font-size:.85rem}.wl-expanded-row .chart-tabs{margin-top:12px}.wl-expanded-row .quote-details{gap:6px;margin-top:6px;padding-top:8px}.wl-expanded-row .atw-wrapper{margin-top:10px}.atw-wrapper{flex-wrap:wrap}.atw-btn{padding:6px 10px;font-size:.76rem}.empty-state{padding:40px 16px}.empty-state svg{width:44px;height:44px}.empty-state h3{font-size:1rem}.empty-state p{font-size:.85rem}}@media (max-width: 380px){.app{padding:12px 8px 40px}.quote-price{font-size:1.6rem}.quote-details{gap:6px}.candlestick-chart svg{height:100px}.daily-chart-y-axis{width:44px}}.quote-price-row{display:flex;align-items:center;gap:10px}.alert-bell-btn{background:none;border:none;cursor:pointer;color:#8b949e;padding:4px;border-radius:6px;transition:color .15s,background .15s;display:flex;align-items:center}.alert-bell-btn svg{width:22px;height:22px}.alert-bell-btn:hover{color:#e2b340;background:#e2b3401a}.alert-bell-btn.has-alerts{color:#e2b340}.alert-dialog{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:24px;width:380px;max-width:92vw;box-shadow:0 16px 48px #00000080;display:flex;flex-direction:column;gap:18px}.alert-dialog-header{display:flex;align-items:center;gap:12px}.alert-dialog-icon{width:28px;height:28px;color:#e2b340;flex-shrink:0}.alert-dialog-symbol{font-size:1.2rem;font-weight:700;color:#e6edf3}.alert-dialog-price{font-size:.85rem;color:#8b949e}.alert-dialog-loading{text-align:center;padding:20px;color:#8b949e}.alert-dialog-body{display:flex;flex-direction:column;gap:16px}.alert-row{display:flex;flex-direction:column;gap:8px;padding:12px;background:#0d1117;border:1px solid #21262d;border-radius:8px}.alert-row-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:#e6edf3}.alert-row-toggle input[type=checkbox]{accent-color:#e2b340;width:16px;height:16px}.alert-row-label{font-weight:500}.alert-row-inputs{display:flex;align-items:center;gap:8px;padding-left:24px;transition:opacity .15s}.alert-input-dollar{color:#8b949e;font-size:.95rem;font-weight:600}.alert-price-input{background:#161b22;border:1px solid #30363d;border-radius:6px;color:#e6edf3;padding:6px 10px;font-size:.95rem;width:110px;outline:none}.alert-price-input:focus{border-color:#e2b340}.alert-price-input::placeholder{color:#484f58}.alert-repeat-toggle{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:.8rem;color:#8b949e;margin-left:auto}.alert-repeat-toggle input[type=checkbox]{accent-color:#58a6ff;width:14px;height:14px}.alert-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.alert-save-btn{padding:8px 20px;border:none;border-radius:6px;font-weight:600;cursor:pointer;background:#e2b340;color:#0d1117;font-size:.9rem;transition:background .15s}.alert-save-btn:hover{background:#f0c850}.alert-save-btn:disabled{opacity:.5;cursor:not-allowed}.alerts-view{padding:16px 20px;max-width:720px;margin:0 auto}.alerts-title{font-size:1.25rem;font-weight:700;color:#e6edf3;margin-bottom:16px}.alerts-table{width:100%;border-collapse:collapse;font-size:.9rem}.alerts-table th{text-align:left;padding:8px 12px;color:#8b949e;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #21262d}.alerts-table-row{cursor:pointer;transition:background .12s}.alerts-table-row:hover{background:#58a6ff0f}.alerts-table-row td{padding:10px 12px;border-bottom:1px solid #161b22;color:#c9d1d9}.alerts-symbol{font-weight:700;color:#e6edf3}.alert-cell.active.above{color:#4ade80;font-weight:600}.alert-cell.active.below{color:#f87171;font-weight:600}.alert-status{font-size:.78rem;font-weight:600;padding:2px 8px;border-radius:10px}.alert-status.active{background:#4ade801f;color:#4ade80}.alert-status.triggered{background:#e2b3401f;color:#e2b340}.alert-status.disabled{background:#8b949e1a;color:#8b949e}@media (max-width: 600px){.alert-dialog{padding:18px;width:auto}.alert-row-inputs{padding-left:0;flex-wrap:wrap}.alerts-view{padding:12px}.alerts-table th,.alerts-table-row td{padding:8px 6px;font-size:.82rem}.alert-bell-btn svg{width:20px;height:20px}}.notif-bell-wrap{position:relative}.notif-bell-btn{background:none;border:none;cursor:pointer;color:#8b949e;padding:6px;border-radius:6px;display:flex;align-items:center;transition:color .15s,background .15s}.notif-bell-btn svg{width:20px;height:20px}.notif-bell-btn:hover{color:#e6edf3;background:#ffffff0f}.notif-badge{position:absolute;top:2px;right:2px;background:#e5534b;color:#fff;font-size:.65rem;font-weight:700;min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:8px;padding:0 4px;pointer-events:none}.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:400px;background:#161b22;border:1px solid #30363d;border-radius:10px;box-shadow:0 12px 40px #00000073;z-index:100;display:flex;flex-direction:column;overflow:hidden}.notif-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #21262d;font-weight:600;font-size:.9rem;color:#e6edf3}.notif-mark-all{background:none;border:none;color:#58a6ff;font-size:.78rem;cursor:pointer;font-weight:500}.notif-mark-all:hover{text-decoration:underline}.notif-empty{padding:32px 14px;text-align:center;color:#484f58;font-size:.85rem}.notif-list{overflow-y:auto;flex:1}.notif-item{padding:10px 14px;border-bottom:1px solid #161b22;cursor:default;transition:background .1s}.notif-item:hover{background:#ffffff08}.notif-item.unread{background:#58a6ff0f;border-left:3px solid #58a6ff}.notif-item-title{font-size:.85rem;font-weight:600;color:#e6edf3;margin-bottom:2px}.notif-item-msg{font-size:.8rem;color:#8b949e;line-height:1.35}.notif-item-time{font-size:.72rem;color:#484f58;margin-top:4px}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#1c2333;border:1px solid #30363d;border-left:4px solid #e2b340;border-radius:8px;padding:12px 16px;min-width:260px;max-width:360px;box-shadow:0 8px 24px #0006;pointer-events:auto;cursor:pointer;animation:toastSlideIn .3s ease-out}.toast:hover{background:#222c3d}.toast-title{font-size:.88rem;font-weight:600;color:#e6edf3;margin-bottom:2px}.toast-msg{font-size:.8rem;color:#8b949e;line-height:1.35}@keyframes toastSlideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@media (max-width: 600px){.notif-panel{position:fixed;top:var(--notif-top, 60px);right:12px;left:12px;width:auto;max-height:50vh}.toast-container{right:8px;left:8px}.toast{min-width:0;max-width:none}}
