:root{color:#172026;background:#f4f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{color:#fff;cursor:pointer;background:#146c5f;border:0;border-radius:6px;min-height:44px;padding:8px 16px;font-weight:700}.app-shell>*,.plan-panel>*,.stock-detail>*,.stock-plan-form>*,.log-filter-form>*,.summary-grid>*,.planned-stocks>*,.chart-modal>*,.details-modal>*,.stock-detail-grid>*,.chart-fundamentals-grid>*,.broker-panel>*,.broker-status>*{min-width:0}h1,h2,h3,.summary-grid strong,.helper-text,.error-text,.success-text,.planned-stocks strong{overflow-wrap:anywhere}button:disabled{cursor:wait;opacity:.65}button.secondary{background:#2f3a40}.settings-menu{position:relative}.settings-menu-trigger{justify-content:center;align-items:center;min-width:42px;padding:0 10px;font-size:1.25rem;display:inline-flex}.settings-menu-popover{z-index:20;background:#fff;border:1px solid #dce5e8;border-radius:6px;min-width:190px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 24px #1720262e}.settings-menu-popover button{text-align:left;width:100%}.realized-profit-loss-section{background:#fff;border:1px solid #dce5e8;border-radius:8px;margin-top:18px;padding:18px}.realized-profit-loss-filters{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.realized-profit-loss-filters label{gap:6px;display:grid}.realized-profit-loss-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px}.realized-profit-loss-summary article span{color:#577079;text-transform:uppercase;margin-bottom:6px;font-size:.78rem;font-weight:800;display:block}.realized-profit-loss-warning{color:#6b5311;background:#fff6d8;border:1px solid #ecd78b;border-radius:6px;padding:12px}.realized-profit-loss-chart{border-bottom:1px solid #bfccd1;align-items:stretch;gap:8px;min-height:340px;margin-top:24px;padding:0 8px 12px;display:flex;overflow-x:auto}.realized-profit-loss-chart-day{text-align:center;flex:1 0 58px;grid-template-rows:130px 130px auto auto;max-width:90px;display:grid}.realized-profit-loss-chart-positive,.realized-profit-loss-chart-negative{justify-content:center;display:flex}.realized-profit-loss-chart-positive{border-bottom:1px solid #809098;align-items:end}.realized-profit-loss-chart-negative{align-items:start}.realized-profit-loss-chart-positive span,.realized-profit-loss-chart-negative span{border-radius:4px 4px 0 0;width:70%;min-height:4px;display:block}.realized-profit-loss-chart-positive span{background:#159570}.realized-profit-loss-chart-negative span{background:#d64545;border-radius:0 0 4px 4px}.realized-profit-loss-chart-day strong{overflow-wrap:anywhere;margin-top:6px;font-size:.72rem}.realized-profit-loss-chart-day small{color:#577079;font-size:.72rem}.realized-profit-loss-days{gap:10px;margin-top:22px;display:grid}.realized-profit-loss-day{border:1px solid #dce5e8;border-radius:6px;overflow:hidden}.realized-profit-loss-day summary{cursor:pointer;grid-template-columns:1fr 1fr auto;align-items:center;gap:12px;padding:14px;display:grid}.realized-profit-loss-day .table-scroll{border-top:1px solid #dce5e8;overflow-x:auto}@media (width<=760px){.realized-profit-loss-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.realized-profit-loss-filters label,.realized-profit-loss-filters button{width:100%}.realized-profit-loss-day summary{grid-template-columns:1fr auto}.realized-profit-loss-day summary span:nth-child(2){display:none}}.login-screen{align-items:center;min-height:100dvh;padding:24px;display:flex}.login-panel{background:#fff;border:1px solid #dce5e8;border-radius:8px;width:100%;max-width:420px;margin:0 auto;padding:28px;box-shadow:0 18px 45px #17202614}.eyebrow{color:#577079;letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:800}h1{margin:0;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.05}h2{margin:0;font-size:1.3rem}.login-form{gap:10px;margin-top:18px;display:grid}.login-methods{background:#edf3f2;border:1px solid #d2dfdc;border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:24px;padding:4px;display:grid}.login-methods button{color:#2f3a40;background:0 0;min-height:38px}.login-methods button.active{color:#146c5f;background:#fff;box-shadow:0 1px 4px #1720261a}label{color:#2f3a40;font-size:.9rem;font-weight:700}input,select{border:1px solid #bfccd1;border-radius:6px;min-width:0;max-width:100%;min-height:44px;padding:0 12px}.oauth-panel{gap:10px;margin-top:18px;display:grid}.app-shell{max-width:none;margin:0 auto;padding:28px 18px 44px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;min-width:0;max-width:100%;display:flex}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:26px 0 18px;display:grid}.broker-panel{background:#fff;border:1px solid #dce5e8;border-radius:8px;grid-template-columns:1fr auto;align-items:end;gap:18px;margin-top:18px;padding:16px;display:grid}.broker-status{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.broker-status span{color:#577079;text-transform:uppercase;margin-bottom:5px;font-size:.78rem;font-weight:800;display:block}.broker-status strong{color:#172026;overflow-wrap:anywhere;font-size:1rem;display:block}.broker-login{grid-template-columns:minmax(120px,160px) auto;align-items:end;gap:10px;display:grid}.broker-login label{grid-column:1/-1}.trading-control-panel{background:#fff;border:1px solid #dce5e8;border-left:5px solid #159570;border-radius:8px;margin-top:18px;padding:16px}.trading-control-panel.trading-paused{background:#fff8f8;border-color:#efbcbc #efbcbc #efbcbc #d64545}.trading-control-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.trading-control-heading>span{font-weight:800}.trading-control-switches{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.trading-control-switch{border:1px solid #dce5e8;border-radius:6px;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex}.trading-control-switch span,.trading-control-switch small{display:block}.trading-control-switch small{color:#577079;margin-top:4px}.trading-control-switch input{accent-color:#146c5f;cursor:pointer;width:44px;min-width:44px;height:24px}.trading-control-switch input:disabled{cursor:not-allowed}.plan-panel{background:#fff;border:1px solid #dce5e8;border-radius:8px;gap:16px;margin-top:18px;padding:16px;display:grid}.section-heading{justify-content:space-between;align-items:center;display:flex}.stock-plan-form{grid-template-columns:repeat(6,minmax(0,1fr)) auto;gap:12px;display:grid}.stock-plan-form label{gap:6px;display:grid}.stock-search-field{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));align-items:end;gap:12px;display:grid}.stock-search-field label{gap:6px;display:grid}.stock-search-results{border:1px solid #dce5e8;border-radius:6px;grid-column:1/-1;gap:6px;max-height:220px;padding:8px;display:grid;overflow:auto}.stock-search-results button{color:#172026;text-align:left;background:#f8fafb;border:1px solid #edf2f4;grid-template-columns:auto minmax(0,1fr);place-items:center start;gap:3px;min-height:auto;padding:10px 12px;display:grid}.stock-search-results button:hover{border-color:#146c5f}.stock-search-results span,.selected-stock-summary span{color:#577079;text-transform:uppercase;font-size:.78rem;font-weight:800}.selected-stock-summary{background:#f8fafb;border:1px solid #edf2f4;border-radius:6px;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;display:grid}.stock-search-results button.selected{background:#eaf6f3;border-color:#146c5f}.stock-search-results input[type=checkbox]{pointer-events:none;width:auto;margin:0}.stock-search-result-text{justify-items:start;gap:3px;display:grid}.stock-selection-toolbar{background:#eaf6f3;border:1px solid #b9ddd5;border-radius:6px;grid-column:1/-1;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.stock-selection-toolbar button{min-height:auto;padding:7px 10px}.selected-stock-summary strong{overflow-wrap:anywhere;margin-top:4px;display:block}.stock-plan-form button{align-self:end}.table-section>.stock-plan-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));min-width:0;padding:16px}.table-section>.stock-plan-form button{white-space:nowrap;min-width:128px}.trade-plan-form{grid-template-columns:repeat(4,minmax(0,1fr))}.log-filter-form{grid-template-columns:180px 150px minmax(180px,1fr) minmax(220px,1.4fr) auto;align-items:end;gap:12px;display:grid}.log-filter-form label{gap:6px;display:grid}.log-table-section table{min-width:1040px}.log-message-cell{white-space:normal;max-width:420px}.log-table-section details{max-width:360px}.log-table-section summary{color:#146c5f;cursor:pointer;font-weight:800}.log-table-section pre{color:#2f3a40;white-space:pre-wrap;background:#f8fafb;border:1px solid #edf2f4;border-radius:6px;width:360px;max-height:220px;margin:8px 0 0;padding:10px;overflow:auto}.stock-detail .stock-plan-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}.stock-detail .stock-plan-form>button[type=submit]{white-space:nowrap;min-width:124px}.checkbox-field{align-self:end;align-items:center;gap:8px;min-height:44px;display:flex}.checkbox-field input{min-height:auto}.planned-stocks{gap:8px;display:grid}.planned-stocks article,.stock-master-list article,.trade-plan-list article,.algo-list article,.rule-list article{border:1px solid #edf2f4;border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));align-items:center;gap:12px;padding:12px;display:grid}.algo-priority-card[draggable=true]{cursor:grab;transition:border-color .12s,box-shadow .12s,opacity .12s}.algo-priority-card[draggable=true]:hover{border-color:#9bc9bf;box-shadow:0 3px 12px #0f766e1a}.algo-priority-card[draggable=true]:active{cursor:grabbing}.algo-priority-card button,.algo-priority-card a,.algo-priority-card input,.algo-priority-card select,.algo-priority-card textarea{cursor:pointer}.algo-priority-dragging{opacity:.55;outline-offset:-2px;outline:2px dashed #0f766e}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.price-category-options{flex-wrap:wrap;gap:8px 16px;margin-top:6px;display:flex}.price-category-options .checkbox-field{align-self:auto;min-height:32px}.pagination-bar{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:12px;display:flex}.pagination-bar label{flex-direction:row;align-items:center;gap:8px;display:flex}.table-toolbar,.inline-search-form{flex-wrap:wrap;align-items:end;gap:10px 12px;margin-bottom:12px;display:flex}.table-toolbar label,.inline-search-form label{min-width:160px}.pagination-actions{gap:8px;display:flex}.stock-master-list .row-actions{flex-wrap:wrap}button.action-link{color:#146c5f;text-underline-offset:3px;background:0 0;border-radius:0;min-height:auto;padding:4px 0;text-decoration:underline}button.action-link:hover{color:#0b5148}button.action-link.danger-link{color:#a3312d}.planned-stocks span{color:#577079;margin-top:4px;font-size:.78rem;font-weight:700;display:block}.stocks-page{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:18px;display:grid}.stock-detail{background:#fff;border:1px solid #dce5e8;border-radius:8px;gap:16px;padding:16px;display:grid}.summary-grid article{background:#fff;border:1px solid #dce5e8;border-radius:8px;padding:18px}.summary-grid article>span,.summary-label>span{color:#577079;font-size:.86rem;font-weight:700;display:block}.summary-label{align-items:center;gap:6px;margin-bottom:8px;display:flex}.info-tooltip{flex:none;display:inline-flex;position:relative}.info-tooltip-icon{color:#577079;cursor:help;border:1px solid #789098;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-family:Georgia,serif;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.info-tooltip-message{color:#fff;white-space:normal;z-index:20;background:#26353b;border-radius:6px;width:max-content;max-width:min(280px,100vw - 32px);padding:8px 10px;font-size:.78rem;font-weight:500;line-height:1.4;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #17202633}.info-tooltip:hover .info-tooltip-message,.info-tooltip:focus .info-tooltip-message,.info-tooltip:focus-within .info-tooltip-message{display:block}.info-tooltip:focus-visible{outline-offset:2px;border-radius:50%;outline:2px solid #146c5f}.summary-grid strong{font-size:1.55rem}.positive{color:#087443}.negative{color:#b42318}.tabs{border-bottom:1px solid #cedadd;gap:8px;margin-bottom:0;display:flex}.tabs button{color:#2f3a40;background:0 0;border-radius:6px 6px 0 0}.tabs button.active{background:#fff;border:1px solid #cedadd;border-bottom-color:#fff}.table-section{background:#fff;border:1px solid #cedadd;border-top:0;overflow-x:auto}.table-scroll{overscroll-behavior-inline:contain;min-width:0;max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #edf2f4;padding:13px 14px}th{color:#577079;text-transform:uppercase;background:#f8fafb;font-size:.82rem}.clickable-order-row{cursor:pointer}.clickable-order-row:hover td{background:#f8fafb}.clickable-order-row:focus-visible{outline-offset:-2px;outline:2px solid #146c5f}.error-text{color:#9f1c12;background:#fff2f0;border:1px solid #ffc9c2;border-radius:6px;margin:16px 0 0;padding:12px}.success-text{color:#075b35;background:#eefbf4;border:1px solid #b7e4ca;border-radius:6px;margin:16px 0 0;padding:12px}.helper-text{color:#577079;margin:12px 0 0;font-size:.9rem}.modal-backdrop{z-index:300;background:#1720268f;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.tab-with-info{align-items:center;gap:4px;display:flex}.tab-with-info .info-tooltip{margin-right:4px}.chart-modal,.details-modal{background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:14px;width:min(1120px,100%);max-width:1120px;max-height:calc(100dvh - 24px);padding:clamp(12px,2vw,18px);display:grid;overflow:auto;box-shadow:0 22px 80px #17202647}.details-modal{width:min(760px,100%);max-width:760px}.details-modal.operational-details-modal{width:calc(100vw - 48px);max-width:1400px}.details-modal.algo-form-modal{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px 20px;width:min(900px,100vw - 32px);max-width:900px;padding:24px}.algo-form-modal>.section-heading{border-bottom:1px solid #e4eaed;grid-column:1/-1;padding-bottom:14px}.algo-form-modal>.section-heading h2{margin-bottom:0}.algo-price-categories{background:#f7faf9;border:1px solid #e2ebe8;border-radius:8px;padding:14px 16px}.algo-price-categories .price-category-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;display:grid}.algo-price-categories .checkbox-field{justify-content:flex-start;margin:0}.algo-form-modal .algo-active-field{justify-content:flex-start;align-self:center;min-height:44px}.algo-form-actions{border-top:1px solid #e4eaed;padding-top:16px}.algo-form-actions button{min-width:130px}@media (width<=760px){.details-modal.algo-form-modal{grid-template-columns:1fr;padding:18px}.algo-form-modal>.section-heading,.algo-form-modal>.stock-detail-wide{grid-column:1}.algo-price-categories .price-category-options{grid-template-columns:1fr}.algo-form-actions{justify-content:stretch}.algo-form-actions button{flex:1}}.details-modal.operational-details-modal.full-screen{border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh}.details-modal.holding-sell-modal{width:min(920px,100%);max-width:920px}.holding-sell-modal .trade-plan-form{grid-template-columns:1fr;gap:16px;display:grid}.holding-sell-position-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0 2px}.holding-sell-order-fields{grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;display:grid}.holding-sell-order-fields label{gap:6px;display:grid}.holding-sell-estimates{grid-template-columns:repeat(4,minmax(150px,1fr));margin:0}.holding-sell-estimates article{min-width:0;padding:16px}.holding-sell-estimates strong{overflow-wrap:anywhere;margin-top:8px;font-size:1.25rem;line-height:1.25;display:block}.holding-sell-modal .helper-text,.holding-sell-modal .error-text,.holding-sell-submit{grid-column:1/-1}.holding-sell-modal .helper-text{margin:0;line-height:1.5}.holding-sell-submit{justify-self:start;min-width:180px}.details-modal.backtest-results-modal{width:calc(100vw - 48px);max-width:1380px}.backtest-results-table{min-width:1900px}.backtest-results-table td{white-space:nowrap}.positive-value{color:#14745f;font-weight:800}.negative-value{color:#a3312d;font-weight:800}.backtest-status{border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:800;display:inline-block}.backtest-status-completed{color:#12624f;background:#dff5eb}.backtest-status-failed,.backtest-status-skipped{color:#8c2e29;background:#fbe8e5}.backtest-status-pending,.backtest-status-processing{color:#775800;background:#fff3cd}.backtest-results-modal .success-text,.backtest-results-modal .error-text{margin:0}.chart-modal{width:calc(100vw - 48px);max-width:1400px;max-height:calc(100dvh - 24px)}.chart-modal.full-screen{border-radius:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;position:fixed;inset:0}.chart-modal.full-screen .stock-chart-shell{min-height:0}.chart-modal.full-screen .stock-chart{height:clamp(300px,100dvh - 345px,760px);min-height:0}.chart-modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.chart-date-label{color:#577079;margin:6px 0 0;font-size:.9rem;font-weight:700}.stock-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stock-detail-grid div{border:1px solid #edf2f4;border-radius:6px;padding:12px}.stock-detail-grid span{color:#577079;margin-bottom:4px;font-size:.78rem;font-weight:700;display:block}.stock-detail-grid strong{color:#2f3a40;overflow-wrap:anywhere}.stock-detail-wide{grid-column:1/-1}.chart-range-tabs{flex-wrap:wrap;gap:8px;display:flex}.chart-toolbar{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;display:flex}.chart-toolbar>.chart-range-tabs+.chart-range-tabs,.chart-toolbar-actions{border-left:1px solid #d6e1e4;padding-left:12px}.chart-toolbar .chart-range-tabs{overscroll-behavior-inline:contain;flex-wrap:nowrap;min-width:0;max-width:100%;overflow-x:auto}.chart-toolbar-actions{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.chart-range-tabs button{color:#2f3a40;white-space:nowrap;background:#edf3f2;flex:none;min-height:44px}.chart-indicator-selector{position:relative}.chart-reference-guide summary{color:#2f3a40;cursor:pointer;background:#f8fafb;border:1px solid #edf2f4;border-radius:6px;min-height:44px;padding:10px;font-weight:700}.chart-reference-guide[open] .stock-chart-legend{margin-top:8px}.chart-indicator-selector summary{cursor:pointer;align-items:center;min-height:44px;font-weight:700;list-style-position:inside;display:flex}.chart-indicator-menu{z-index:20;background:#fff;border:1px solid #d6e1e4;border-radius:6px;gap:6px;min-width:210px;max-width:calc(100vw - 48px);max-height:min(380px,60dvh);padding:10px;display:grid;position:absolute;right:0;overflow-y:auto;box-shadow:0 8px 24px #0f172a24}.chart-range-tabs button.active{color:#fff;background:#146c5f}.chart-surface{border:1px solid #edf2f4;border-radius:6px;min-height:520px;padding:12px;overflow:hidden}.stock-chart-shell{gap:8px;min-width:0;min-height:clamp(480px,58vh,650px);display:grid}.stock-chart{width:100%;min-width:0;height:clamp(480px,58vh,650px)}.stock-chart-legend{color:#2f3a40;flex-wrap:wrap;align-items:center;gap:8px;min-height:26px;font-size:.86rem;font-weight:800;display:flex}.stock-chart-legend span{overflow-wrap:anywhere;background:#f8fafb;border:1px solid #edf2f4;border-radius:6px;max-width:100%;padding:5px 8px}.stock-chart-legend .positive-text,.chart-stat-grid .positive-text{color:#087f5b}.stock-chart-legend .negative-text,.chart-stat-grid .negative-text{color:#c92a2a}.stock-chart-legend .ema-7{color:#9a6700}.stock-chart-legend .ema-9{color:#7c3aed}.stock-chart-legend .ema-21{color:#1d4ed8}.stock-chart-legend .volume{color:#475569}.chart-stat-grid{border-top:1px solid #edf2f4;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;padding-top:14px;display:grid}.chart-stat-grid div{background:#f8fafb;border:1px solid #edf2f4;border-radius:6px;padding:12px}.chart-stat-grid span{color:#577079;margin-bottom:4px;font-size:.78rem;font-weight:700;display:block}.chart-stat-grid strong{color:#2f3a40;overflow-wrap:anywhere;font-size:1rem;display:block}.chart-fundamentals{border-top:1px solid #d6e1e4;margin-top:14px;padding-top:14px}.chart-fundamentals-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.chart-fundamentals-heading .eyebrow,.chart-fundamentals-heading h3{margin:0}.chart-fundamentals-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.chart-fundamentals-grid div{background:#f8fafb;border:1px solid #edf2f4;border-radius:6px;padding:10px}.chart-fundamentals-grid span{color:#577079;margin-bottom:4px;font-size:.76rem;font-weight:700;display:block}.chart-fundamentals-grid strong{color:#2f3a40;overflow-wrap:anywhere;display:block}@media (width<=1100px){.summary-grid,.realized-profit-loss-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stock-plan-form{grid-template-columns:repeat(3,minmax(0,1fr))}.log-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.log-filter-form button{justify-self:start}.chart-fundamentals-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-toolbar{flex-wrap:wrap;align-items:flex-start}.chart-toolbar-actions{border-left:0;margin-left:0;padding-left:0}.chart-indicator-menu{left:0;right:auto}}@media (width<=760px){.app-shell{padding:16px 10px 28px}input,select,textarea{font-size:16px}button,button.action-link,.chart-range-tabs button,.login-methods button,.stock-selection-toolbar button,.starvis-window-button,.starvis-collapse-button,.starvis-expand-button{min-height:44px}.login-screen{padding:12px}.login-panel{padding:18px}.login-methods button{min-width:0;padding:8px}.details-modal.algo-form-modal{padding:14px}.plan-panel,.stock-detail,.broker-panel,.trading-control-panel,.realized-profit-loss-section{padding:12px}.section-heading{flex-wrap:wrap;align-items:flex-start;gap:10px}.tabs{overscroll-behavior-inline:contain;scrollbar-width:thin;max-width:100%;overflow-x:auto}.tabs button{white-space:nowrap;flex:none}.stock-selection-toolbar{flex-direction:column;align-items:stretch;gap:8px}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{justify-content:stretch;width:100%}.topbar-actions button{flex:1}.table-toolbar,.inline-search-form,.pagination-bar{flex-direction:column;align-items:stretch}.table-toolbar label,.inline-search-form label,.table-toolbar input,.table-toolbar select,.inline-search-form input,.inline-search-form select{width:100%;min-width:0}.pagination-actions,.pagination-actions button{width:100%}.pagination-actions button{flex:1}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.broker-panel{grid-template-columns:1fr;align-items:stretch}.broker-login{grid-template-columns:1fr}.trading-control-heading{flex-direction:column;align-items:flex-start}.trading-control-switches{grid-template-columns:1fr}.stock-plan-form{grid-template-columns:repeat(2,minmax(0,1fr))}.table-section>.stock-plan-form{min-width:0;padding:12px}.trade-plan-form,.holding-sell-order-fields,.holding-sell-estimates,.log-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.stocks-page{grid-template-columns:1fr}.stock-plan-form button,.log-filter-form button,.stock-search-field,.stock-search-results,.selected-stock-summary,.planned-stocks article{grid-column:1/-1}.stock-search-field,.selected-stock-summary,.stock-detail-grid,.planned-stocks article{grid-template-columns:1fr}.row-actions{justify-content:stretch}.row-actions button{flex:1}.stock-master-list .row-actions{flex-wrap:wrap;justify-content:flex-start}.stock-master-list .row-actions button.action-link{flex:none}.modal-backdrop{align-items:stretch;padding:12px}.chart-modal,.details-modal.operational-details-modal{width:calc(100vw - 24px)}.chart-modal-header{flex-direction:column;align-items:flex-start}.chart-modal-header>div:first-child,.chart-modal-actions{width:100%;min-width:0}.chart-modal-actions button{min-width:0}.chart-modal.full-screen{padding-bottom:max(10px, env(safe-area-inset-bottom));padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right));padding-top:max(10px, env(safe-area-inset-top));gap:10px;overflow:hidden auto}.chart-modal.full-screen .chart-modal-header{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.chart-modal.full-screen .chart-modal-actions{flex-wrap:nowrap;align-self:start;width:auto}.chart-modal.full-screen .chart-modal-actions button{white-space:nowrap;min-height:44px;padding:0 10px}.chart-modal.full-screen .chart-surface{min-height:0;padding:8px}.chart-toolbar{flex-wrap:wrap;align-items:flex-start}.chart-toolbar .chart-range-tabs{overscroll-behavior-inline:contain;scrollbar-width:thin;max-width:100%;padding-bottom:3px;overflow-x:auto}.chart-toolbar-actions{border-left:0;margin-left:0;padding-left:0}.chart-indicator-menu{left:0;right:auto}.chart-fundamentals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-surface{min-height:420px}.stock-chart-shell{min-height:0}.stock-chart{height:clamp(300px,52dvh,560px);min-height:0}.chart-modal.full-screen .stock-chart{height:clamp(240px,100dvh - 520px,500px)}}@media (width<=480px){.app-shell{padding-left:8px;padding-right:8px}.summary-grid,.broker-status,.chart-stat-grid,.chart-fundamentals-grid,.stock-plan-form,.trade-plan-form,.holding-sell-position-summary,.holding-sell-order-fields,.holding-sell-estimates{grid-template-columns:1fr}.holding-sell-submit{justify-self:stretch;width:100%}.log-filter-form,.chart-modal.full-screen .chart-modal-header{grid-template-columns:1fr}.chart-modal.full-screen .chart-modal-actions{width:100%}.chart-modal.full-screen .chart-modal-actions button{flex:1}.chart-range-tabs button{min-height:44px;padding-left:12px;padding-right:12px}}@media (height<=600px) and (orientation:landscape){.chart-modal.full-screen .stock-chart{height:260px}.chart-modal.full-screen .chart-date-label{margin-top:2px}}.live-status{align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;display:inline-flex}.live-status:before{content:"";background:#94a3b8;border-radius:50%;width:.55rem;height:.55rem}.live-status.live:before{background:#22c55e}.live-status.connecting:before,.live-status.reconnecting:before{background:#f59e0b}.app-shell.starvis-docked{margin-right:420px;transition:margin-right .18s}.app-shell.starvis-collapsed{margin-right:56px;transition:margin-right .18s}.starvis-panel{z-index:80;background:#f7faf9;border-left:1px solid #cfdcda;grid-template-rows:auto auto minmax(0,1fr) auto;width:420px;display:grid;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 28px #1939341f}.starvis-panel-positioned{border:1px solid #b9cbc7;border-radius:12px;height:min(760px,100vh - 24px);bottom:auto;overflow:hidden}.starvis-panel-dragging{-webkit-user-select:none;user-select:none;box-shadow:0 14px 38px #1939343d}.starvis-popout-body{margin:0;overflow:hidden}.starvis-popout-root{height:100dvh}.starvis-panel-popout{border:0;width:100%;height:100dvh;inset:0}.app-shell.starvis-docked:has(>.starvis-panel-popout-placeholder){margin-right:56px}.starvis-panel-collapsed{background:#123b35;justify-content:center;align-items:start;width:56px;padding-top:12px;display:flex}.starvis-expand-button{color:#0d5c50;background:#e9fff9;width:40px;height:40px;min-height:40px;padding:0;font-size:1.15rem}.starvis-header{color:#fff;background:#123b35;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:16px 18px;display:flex}.starvis-header-draggable{cursor:grab;touch-action:none}.starvis-panel-dragging .starvis-header-draggable{cursor:grabbing}.starvis-window-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.starvis-window-button{min-height:36px;padding:6px 10px}.starvis-header .eyebrow{color:#a7ddd2;margin:0 0 3px}.starvis-header h2{margin:0}.starvis-collapse-button{width:38px;min-height:36px;padding:0;font-size:1.7rem}.starvis-page-context{color:#365d56;text-transform:capitalize;background:#e5f2ef;border-bottom:1px solid #cfdcda;padding:8px 18px;font-size:.82rem}.starvis-conversation{flex-direction:column;gap:12px;min-width:0;min-height:0;padding:16px;display:flex;overflow-y:auto}.starvis-empty-state,.starvis-thinking{color:#5b716d;padding:16px 8px;font-size:.9rem}.starvis-message{background:#fff;border:1px solid #d8e4e1;border-radius:10px;padding:12px}.starvis-message-user{background:#e6f5f1;align-self:flex-end;max-width:88%}.starvis-message p{overflow-wrap:anywhere;white-space:pre-wrap;margin:6px 0 0}.starvis-decision-card{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.starvis-decision-card>div{background:#f0f6f4;border-radius:6px;gap:3px;padding:8px;display:grid}.starvis-decision-card span,.starvis-compose-footer span{color:#637873;font-size:.75rem}.starvis-detail-list{margin-top:12px}.starvis-detail-list ul{margin:6px 0 0;padding-left:20px}.starvis-warning-list{color:#7a4f00}.starvis-evidence-details{color:#526b66;margin-top:12px;font-size:.82rem}.starvis-compose{background:#fff;border-top:1px solid #cfdcda;gap:8px;padding:14px;display:grid}.starvis-compose label{font-size:.82rem;font-weight:700}.starvis-voice-controls{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.starvis-voice-controls label{flex:145px;gap:5px;display:grid}.starvis-voice-controls select{border:1px solid #aebfbb;border-radius:6px;min-height:42px;padding:0 8px}.starvis-voice-controls button{flex:none}.starvis-microphone.listening{background:#b42318;animation:1.2s ease-in-out infinite starvis-listening-pulse}.starvis-listening-status{color:#9d1c13;margin:0;font-size:.82rem;font-weight:700}.starvis-voice-note{color:#667a76;margin:0;font-size:.78rem}@keyframes starvis-listening-pulse{0%,to{box-shadow:0 0 #b423184d}50%{box-shadow:0 0 0 6px #b4231800}}.starvis-compose textarea{font:inherit;resize:vertical;border:1px solid #aebfbb;border-radius:6px;padding:10px}.starvis-compose-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.starvis-disclaimer{color:#667a76;margin:0;font-size:.72rem}@media (width<=900px){.app-shell.starvis-docked,.app-shell.starvis-collapsed{margin-right:0}.starvis-panel:not(.starvis-panel-collapsed){z-index:200;border-left:0;width:100vw;height:100dvh;overflow-y:auto}.starvis-panel-positioned{border-radius:0;height:100dvh;bottom:0;top:0!important;left:0!important}.starvis-header-draggable{cursor:default;touch-action:auto}.starvis-panel-collapsed{border-radius:10px 0 0 10px;height:56px;padding-top:8px;top:auto;bottom:18px}.starvis-voice-controls{align-items:stretch}.starvis-voice-controls button{flex:auto}}
