:root{color:#e8edf5;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#0f1419;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}#app{min-height:100vh}.page{min-height:100vh;padding:2rem 1.25rem}.login-shell{flex-direction:column;min-height:100vh;display:flex}.title-bar-login{justify-content:center}.login-page{background:radial-gradient(at top,#1a2a3a 0%,#0f1419 55%);flex:1;justify-content:center;align-items:center;display:flex}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:220px 1fr;min-height:100vh;display:grid}.title-bar{z-index:10;background:#111820;border-bottom:1px solid #2a3a4f;grid-column:1/-1;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:sticky;top:0}.title-bar-left{align-items:center;gap:.5rem;min-width:0;display:flex}.title-bar-logo{color:#e8edf5;letter-spacing:.02em;font-size:1.05rem;font-weight:700}.title-bar-sep{color:#4a5d78}.title-bar-page{color:#8b9cb3;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.title-bar-right{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.title-bar-price-date{color:#8b9cb3;font-size:.85rem}.title-bar-user{color:#6b7d94;font-size:.85rem}.title-bar-logout{padding:.4rem .75rem;font-size:.85rem}.title-bar-pipeline-error{color:#f87171;font-size:.8rem}.title-bar-settings{align-items:center;display:flex;position:relative}.title-bar-settings-btn{justify-content:center;align-items:center;padding:.4rem .55rem;display:inline-flex;position:relative}.title-bar-settings-icon{display:block}.title-bar-settings-dot{background:#34d399;border:1px solid #111820;border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.2rem;right:.2rem}.settings-dropdown{z-index:20;background:#1a2433;border:1px solid #2a3a4f;border-radius:.5rem;min-width:11rem;padding:.35rem 0;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 8px 24px #00000059}.settings-dropdown-item{color:#e8edf5;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:.55rem .9rem;font-size:.85rem;display:block}.settings-dropdown-item:hover:not(:disabled){background:#243044}.settings-dropdown-item:disabled{opacity:.5;cursor:not-allowed}.settings-dropdown-sep{background:#2a3a4f;height:1px;margin:.35rem 0}.settings-dropdown-email{color:#6b7d94;text-overflow:ellipsis;white-space:nowrap;margin:.25rem .9rem .35rem;font-size:.75rem;overflow:hidden}.settings-toast{color:#e8edf5;white-space:nowrap;text-overflow:ellipsis;background:#243044;border:1px solid #2a3a4f;border-radius:.35rem;max-width:14rem;padding:.35rem .6rem;font-size:.8rem;position:absolute;top:50%;right:calc(100% + .5rem);overflow:hidden;transform:translateY(-50%)}.callback-page{background:#0f1419;justify-content:center;align-items:center;min-height:100vh;display:flex}.callback-card{text-align:center;background:#141c28;border:1px solid #2a3a4f;border-radius:.5rem;padding:2rem}.callback-message{color:#e8edf5;margin:0 0 1rem}.callback-error{color:#f87171}.sidebar{background:#141c28;border-right:1px solid #2a3a4f;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.nav{flex-direction:column;flex:1;gap:.35rem;display:flex}.nav-btn{text-align:left;color:#8b9cb3;background:0 0;border:1px solid #0000;padding:.55rem .75rem}.nav-btn:hover,.nav-btn.active{color:#e8edf5;background:#1e2a3d;border-color:#2d6cdf}.main{padding:1.25rem 1.5rem 2rem;overflow-x:auto}.tab-panel{max-width:1100px}.card{background:#1a2332;border:1px solid #2a3a4f;border-radius:12px;margin-bottom:1.25rem;padding:1.25rem 1.5rem}.login-card{width:100%;max-width:400px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.panel-head-text{flex:200px;min-width:0}.panel-actions{flex-wrap:wrap;flex:520px;justify-content:flex-end;align-items:center;gap:.65rem 1rem;display:flex}.panel-actions .inline-label{white-space:nowrap;flex:none}.panel-actions .inline-select{min-width:5.5rem}.panel-actions .slider-label{flex-direction:row;flex:0 200px;align-items:center;gap:.5rem;min-width:0}.panel-actions .slider-label span{flex-shrink:0}.panel-actions .day-slider{flex-shrink:0;width:120px;min-width:100px}.panel-actions .checkbox-label{white-space:nowrap;flex:none}.panel-actions .icon-btn{flex-shrink:0;align-self:center}.panel-actions-stack{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.panel-actions-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem 1rem;display:flex}.panel-actions-row--controls{flex-wrap:nowrap;gap:.5rem .75rem}.panel-actions .panel-actions-row--controls .inline-select{min-width:5rem}.panel-actions .panel-actions-row--controls .slider-label{flex:none;min-width:0}.panel-actions .panel-actions-row--controls .day-slider{width:96px;min-width:72px}.panel-head h2{margin:0 0 .25rem}h1{margin:0 0 .25rem;font-size:1.75rem;font-weight:600}h2{font-size:1.1rem;font-weight:600}.subtitle{color:#8b9cb3;margin:0;font-size:.85rem}form{flex-direction:column;gap:1rem;display:flex}label{color:#a8b8cf;flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.readonly-input{cursor:default;color:#8b9cb3;background:#141c28}.inline-label{flex-direction:row;align-items:center;gap:.5rem}.checkbox-label input[type=checkbox]{accent-color:#2d6cdf;width:auto;margin:0}input,select{color:#e8edf5;background:#0f1419;border:1px solid #3a4d66;border-radius:8px;padding:.55rem .65rem;font-size:.95rem}input.wide{min-width:220px}input:focus,select:focus{border-color:#0000;outline:2px solid #3d7ab8}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.55rem .9rem;transition:background .15s}button:disabled{opacity:.6;cursor:not-allowed}button.sm{padding:.3rem .55rem;font-size:.8rem}.primary{color:#fff;background:#2d6cdf;font-weight:600}.primary:hover:not(:disabled){background:#3a7cef}.btn-success{color:#fff;background:#22c55e;font-weight:600}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger{color:#fff;background:#ef4444;font-weight:600}.btn-danger:hover:not(:disabled){background:#dc2626}.icon-btn{justify-content:center;align-items:center;min-width:42px;min-height:42px;padding:.5rem;display:inline-flex}.icon-btn-svg.spinning{animation:.8s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.ghost{color:#8b9cb3;background:0 0;border:1px solid #3a4d66}.ghost:hover{color:#e8edf5;background:#243044}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.error{color:#f87171;margin:0;font-size:.9rem}.hint,.muted{color:#6b7d94;margin:.5rem 0 0;font-size:.8rem}.json{color:#a8d4a0;background:#0f1419;border-radius:8px;margin:0;padding:.75rem;font-size:.8rem;overflow-x:auto}.stat{margin:0;font-size:1.5rem;font-weight:600}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.kpi{background:#0f1419;border-radius:8px;flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.kpi span{color:#6b7d94;font-size:.75rem}.kpi strong{font-size:1.2rem}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #2a3a4f;padding:.5rem .65rem}.data-table th{color:#8b9cb3;font-weight:600}.market-direction-chart{width:100%;height:160px;min-height:140px}.slider-label{flex-direction:column;align-items:stretch;gap:.35rem;min-width:180px}.slider-label span{color:#a8b8cf;font-size:.85rem}.day-slider{accent-color:#2d6cdf;cursor:pointer;width:100%}.day-slider:disabled{opacity:.5;cursor:not-allowed}.filter-group{border:1px solid #3a4d66;border-radius:8px;display:inline-flex;overflow:hidden}.filter-btn{color:#8b9cb3;background:0 0;border:none;border-right:1px solid #3a4d66;padding:.45rem .75rem;font-size:.85rem}.filter-btn:last-child{border-right:none}.filter-btn:hover{color:#e8edf5;background:#243044}.filter-btn.active{color:#fff;background:#2d6cdf}.pane-toolbar{justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.up,.buy{color:#4ade80}.down,.sell{color:#f87171}.hold{color:#8b9cb3}.call-cell{position:relative}.reason-tooltip-cell{cursor:help;position:relative}.call-reason-tooltip{color:#c5d0df;white-space:pre-line;text-align:left;z-index:30;pointer-events:none;background:#1a2433;border:1px solid #2a3a4f;border-radius:8px;min-width:220px;max-width:340px;padding:.5rem .65rem;font-size:.75rem;font-weight:400;line-height:1.45;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.call-cell:hover .call-reason-tooltip,.reason-tooltip-cell:hover .call-reason-tooltip{display:block}.signal-cell{text-align:center;width:4rem}.signal-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.signal-on{background:#4ade80}.signal-off{background:#8b9cb3}.price-stat-cell{white-space:nowrap;cursor:help;font-size:.85rem}.price-stat-sep{color:#6b7d94;margin:0 .35rem}@media (width<=768px){.app-shell{grid-template-columns:1fr}.title-bar-user{display:none}.sidebar{border-bottom:1px solid #2a3a4f;border-right:none}.nav{flex-flow:wrap}.col-hide-sm,.data-table-cards-sm thead{display:none}.data-table-cards-sm tbody tr{background:#141c28;border:1px solid #2a3a4f;border-radius:10px;margin-bottom:.75rem;padding:.65rem .85rem .35rem;display:block}.data-table-cards-sm tbody tr:last-child{margin-bottom:0}.data-table-cards-sm tbody td{text-align:right;border-bottom:1px solid #243044;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 0;display:flex}.data-table-cards-sm tbody td:last-child{border-bottom:none}.data-table-cards-sm tbody td:before{content:attr(data-label);color:#8b9cb3;text-align:left;flex-shrink:0;font-weight:600}.data-table-cards-sm tbody td:first-child{color:#e8edf5;text-align:left;border-bottom:1px solid #2a3a4f;margin-bottom:.15rem;padding-bottom:.5rem;font-size:1rem;font-weight:700;display:block}.data-table-cards-sm tbody td:first-child:before{display:none}}.notes-page{max-width:900px}.note-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.note-toolbar-left{flex-wrap:wrap;flex:1;align-items:center;gap:.65rem;min-width:0;display:flex}.note-select{min-width:180px;max-width:220px}.note-search{flex:1;min-width:200px}.note-search-results{background:#141c28;border:1px solid #2a3a4f;border-radius:12px;max-height:240px;margin:-.5rem 0 1.25rem;overflow-y:auto}.note-search-result{color:#e8edf5;text-align:left;background:0 0;border:none;border-bottom:1px solid #2a3a4f;border-radius:0;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.75rem 1rem;display:flex}.note-search-result:last-child{border-bottom:none}.note-search-result:hover{background:#1e2a3d}.note-search-result.active{background:#243044;box-shadow:inset 3px 0 #2d6cdf}.note-search-result-title{font-size:.95rem;font-weight:600}.note-search-snippet{color:#8b9cb3;font-size:.8rem;line-height:1.4}.note-search-empty{text-align:center;margin:0;padding:1rem}.note-view-toggle{flex-shrink:0}.note-title-input{color:#e8edf5;background:0 0;border:none;width:100%;margin:0 0 1rem;padding:0;font-size:1.75rem;font-weight:600;line-height:1.3;display:block}.note-title-input:focus{outline:none}.note-title-input::placeholder{color:#4a5d78}.note-editor,.note-preview{color:#e8edf5;resize:vertical;background:#141c28;border:1px solid #2a3a4f;border-radius:12px;width:100%;min-height:400px;padding:1.25rem 1.5rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.95rem;line-height:1.6}.note-editor:focus{border-color:#0000;outline:2px solid #3d7ab8}.note-preview h1,.note-preview h2,.note-preview h3{margin:1rem 0 .5rem;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:600}.note-preview h1:first-child,.note-preview h2:first-child,.note-preview h3:first-child{margin-top:0}.note-preview p{margin:.5rem 0}.note-preview ul,.note-preview ol{margin:.5rem 0;padding-left:1.5rem}.note-preview code{background:#0f1419;border-radius:4px;padding:.15rem .35rem;font-size:.9em}.note-preview pre{background:#0f1419;border-radius:8px;padding:.75rem 1rem;overflow-x:auto}.note-preview pre code{background:0 0;padding:0}@media (width<=768px){.note-toolbar,.note-toolbar-left{flex-direction:column;align-items:stretch}.note-select,.note-search{width:100%;max-width:none}.note-view-toggle{align-self:flex-end}}
