.structure-scroll,#structure-chart{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}
.signal-cockpit{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px;margin-top:18px}.signal-cockpit .surface{margin:0;border:1px solid rgba(80,209,231,.13);background:linear-gradient(145deg,rgba(11,25,35,.92),rgba(8,14,23,.96));box-shadow:inset 0 1px rgba(255,255,255,.035),0 18px 55px rgba(0,0,0,.18)}.signal-kicker{display:block;color:#42e8ff;font-size:10px;letter-spacing:2px;text-transform:uppercase;margin-bottom:9px}.signal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.signal-head h2{font-size:22px;margin:0}.signal-direction{display:inline-flex;padding:5px 9px;margin-inline-start:8px;border-radius:8px;font-size:11px;letter-spacing:.8px;vertical-align:middle}.signal-direction.buy{color:#4fffd5;background:rgba(31,214,164,.12);border:1px solid rgba(31,214,164,.24)}.signal-direction.sell{color:#ff7890;background:rgba(255,75,110,.1);border:1px solid rgba(255,75,110,.22)}.signal-status{font-size:11px;padding:7px 10px;border-radius:20px;color:#61f2d2;background:rgba(25,212,165,.1);border:1px solid rgba(25,212,165,.2)}.signal-status.historical{color:#a9b3bd;background:rgba(140,155,170,.08);border-color:rgba(140,155,170,.16)}.signal-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:22px 0 17px}.signal-levels>div{min-width:0;padding:12px;border:1px solid rgba(95,203,225,.1);border-radius:13px;background:rgba(3,10,17,.34)}.signal-levels span,.risk-results span,.metric>span{display:block;color:#7e909e;font-size:10px;margin-bottom:7px}.signal-levels strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.signal-levels .loss-level strong{color:#ff748a}.signal-levels .target-level strong{color:#68efd3}.signal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 17px;color:#7f919e;font-size:11px;margin-bottom:17px}.signal-meta b{color:#d9e5ec;font-weight:600}.signal-journal-button{min-height:40px;padding:10px 14px;font-size:12px}.signal-empty{min-height:176px;display:flex;align-items:center;gap:18px}.signal-empty h2{margin:0 0 8px;font-size:20px}.signal-empty p{margin:0;max-width:520px;font-size:12px}.signal-pulse{width:14px;height:14px;flex:none;border-radius:50%;background:#35e8ff;box-shadow:0 0 0 0 rgba(53,232,255,.45);animation:signal-pulse 2s ease-out infinite}.risk-calculator header h2{font-size:19px;margin:0 0 16px}.risk-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.risk-fields label{display:grid;gap:6px;color:#8a9ba7;font-size:10px}.risk-fields input,.trade-card input,.trade-card textarea,.trade-card select,.quiet-hours input{width:100%;min-width:0;color:#eaf8ff;background:rgba(3,9,15,.68);border:1px solid rgba(93,195,217,.16);border-radius:10px;padding:10px 11px;font:inherit}.risk-fields input:focus,.trade-card input:focus,.trade-card textarea:focus,.trade-card select:focus,.quiet-hours input:focus{outline:2px solid rgba(55,226,255,.38);border-color:#3adff6}.risk-results{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}.risk-results>div{padding:10px;border-radius:11px;background:rgba(32,212,189,.055)}.risk-results strong{font-size:12px;color:#dffdfa;line-height:1.45}.risk-calculator #risk-error{min-height:18px;margin:12px 0 0;color:#ff7188;font-size:10px}.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.trade-card{margin:0!important;border:1px solid rgba(89,199,221,.11);position:relative;overflow:hidden}.trade-card:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:#758895}.trade-card.buy:before{background:#24dfb5}.trade-card.sell:before{background:#ff5c78}.trade-card header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.trade-card h2{font-size:17px;margin:7px 0 4px}.trade-card header small{color:#758794;font-size:10px}.trade-side{font-size:9px;letter-spacing:1.2px;color:#51ecca}.trade-card.sell .trade-side{color:#ff7188}.trade-card select{width:auto;max-width:140px;padding:8px;font-size:11px}.trade-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0}.trade-levels>span{font-size:9px;color:#728591}.trade-levels b{display:block;color:#e7f4fa;font-size:13px;margin-top:7px}.trade-levels input{padding:7px;margin-top:5px;font-size:12px}.trade-notes{display:grid;gap:7px;color:#7c8e99;font-size:10px}.trade-notes textarea{resize:vertical;min-height:56px}.quiet-save{margin-top:10px;padding:8px 0;color:#47e5d1;font-size:11px}.performance-periods{display:flex;gap:8px;padding:7px!important;border-radius:18px!important}.performance-periods button{flex:1;min-height:38px;border-radius:12px;font-size:12px}.performance-periods button.selected{color:#06151b;background:linear-gradient(110deg,#43e5fb,#4ff0c8)}.performance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{margin:0!important}.metric strong{font-size:28px;font-weight:500}.metric strong.positive{color:#53efc9}.metric strong.negative{color:#ff7188}.performance-chart-card{margin-top:13px}.equity-chart{display:block;width:100%;height:180px;color:#42e8ff;filter:drop-shadow(0 0 9px rgba(66,232,255,.28));overflow:visible}.notification-title{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(105,200,219,.12);margin-top:14px;padding-top:14px}.notification-title h3{margin:0}.notification-title button{padding:5px;color:#4edfd1;font-size:10px}.notification-list{display:grid;gap:4px;max-height:320px;overflow:auto}.notification-list article{display:flex;gap:10px;padding:12px 4px;border-bottom:1px solid rgba(110,196,214,.09)}.notification-list article>span{width:7px;height:7px;border-radius:50%;background:#394650;margin-top:5px;flex:none}.notification-list article.unread>span{background:#3de7d0;box-shadow:0 0 10px rgba(61,231,208,.65)}.notification-list strong{display:block;font-size:11px;color:#d9e8ee}.notification-list p{margin:4px 0!important;font-size:10px!important;line-height:1.5!important}.notification-list small{color:#61747f;font-size:9px}.notification-empty{margin:10px 0 0!important}.gold-icon{position:relative}.unread-badge{position:absolute;top:4px;inset-inline-end:2px;min-width:15px;height:15px;padding:0 3px;display:grid;place-items:center;border-radius:10px;color:#031116;background:#49ead3;font-size:8px;font-weight:800;box-shadow:0 0 0 2px #071018}.preference-list{display:grid;gap:0}.preference-list label{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid rgba(102,184,202,.1);font-size:13px}.preference-list input{width:38px;height:21px;accent-color:#22d8ba}.quiet-hours{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px;color:#82939e;font-size:11px}.quiet-hours>span{margin-inline-end:auto}.quiet-hours label{display:flex;align-items:center;gap:6px}.quiet-hours input{width:105px;padding:8px}.notification-preferences #preference-status{margin:12px 0 0;color:#47dfce;font-size:11px}.feedback-error{color:#ff7188!important}.chart-focus{overflow:hidden}.chart-focus .portal-chart-card{position:fixed;inset:0;z-index:1000;border-radius:0;background:#05090f}.chart-focus .chart-workspace{height:calc(100dvh - 165px)!important}.chart-focus .terminal-footer{display:none}.chart-focus .chart-top{border-radius:0}.chart-focus .portal-bottom{display:none!important}
html[data-theme="light"] .signal-cockpit .surface,html[data-theme="light"] .trade-card,html[data-theme="light"] .performance-chart-card{background:rgba(255,255,255,.91)!important;border-color:rgba(0,127,151,.15);box-shadow:0 18px 52px rgba(43,91,120,.09)}html[data-theme="light"] .signal-levels>div,html[data-theme="light"] .risk-fields input,html[data-theme="light"] .trade-card input,html[data-theme="light"] .trade-card textarea,html[data-theme="light"] .trade-card select,html[data-theme="light"] .quiet-hours input{background:#f4f9fc;color:#102037;border-color:#c9dce6}html[data-theme="light"] .signal-head h2,html[data-theme="light"] .signal-levels strong,html[data-theme="light"] .trade-card h2,html[data-theme="light"] .trade-levels b,html[data-theme="light"] .metric strong{color:#102037}html[data-theme="light"] .risk-results>div{background:rgba(0,150,176,.065)}html[data-theme="light"] .risk-results strong{color:#123b48}html[data-theme="light"] .unread-badge{box-shadow:0 0 0 2px #f7fbfd}
@keyframes signal-pulse{70%{box-shadow:0 0 0 13px rgba(53,232,255,0)}100%{box-shadow:0 0 0 0 rgba(53,232,255,0)}}
@media(max-width:1100px){.signal-cockpit{grid-template-columns:1fr}.performance-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){body .chart-workspace{height:clamp(500px,64dvh,680px)!important;min-height:500px!important}.portal-chart-card{border-radius:18px}.signal-cockpit{margin-top:13px;gap:12px}.signal-cockpit .surface{padding:17px;border-radius:18px}.signal-levels{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:5px;margin-block:17px 13px}.signal-levels>div{flex:0 0 105px;scroll-snap-align:start;padding:10px}.signal-levels strong{font-size:14px}.signal-meta{font-size:10px;margin-bottom:13px}.signal-journal-button{width:100%}.signal-empty{min-height:124px}.signal-empty h2{font-size:17px}.risk-fields{gap:8px}.risk-fields input{padding:9px}.risk-results strong{font-size:11px}.journal-grid{grid-template-columns:1fr}.performance-grid{grid-template-columns:repeat(2,1fr);gap:9px}.metric{padding:17px!important}.metric strong{font-size:24px}.equity-chart{height:140px}.portal-popover.feed-popover{max-height:calc(100dvh - 105px);overflow:auto}.trade-levels{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){body .chart-workspace{height:clamp(510px,68dvh,700px)!important}.signal-head h2{font-size:18px}.signal-status{padding:6px 8px}.risk-results{grid-template-columns:1fr 1fr}.risk-results>div:last-child{grid-column:1/-1}.performance-periods{overflow-x:auto}.performance-periods button{min-width:74px}.trade-card header{align-items:center}.trade-card select{max-width:116px}.quiet-hours>span{width:100%}.quiet-hours label{flex:1}.quiet-hours input{width:100%}}
@media(prefers-reduced-motion:reduce){.signal-pulse{animation:none}}

/* Fullscreen contains the chart alone; the iPhone fallback rotates only that chart. */
#full-screen{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:92px;border:1px solid rgba(73,221,242,.2);background:rgba(44,205,226,.07);color:#69e8f7}
#full-screen .fullscreen-icon{font-size:20px;line-height:1}
#full-screen .fullscreen-label{font-size:11px;font-weight:650}
body.chart-landscape{overflow:hidden;overscroll-behavior:none}
#exit-chart-fullscreen{display:none}
body.chart-landscape #workspace,body.chart-landscape #workspace:fullscreen{position:fixed!important;inset:0;z-index:2147483647;width:100vw!important;max-width:none!important;height:100dvh!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#05090f;overflow:hidden;display:flex}
body.chart-landscape #workspace .drawing-tools,body.chart-landscape #workspace .chart-heading,body.chart-landscape #workspace .indicator-legend,body.chart-landscape #workspace .chart-bottom{display:none!important}
body.chart-landscape #workspace .chart-stage,body.chart-landscape #workspace .structure-scroll{flex:1;min-width:0;min-height:0;width:100%;height:100%}
body.chart-landscape #workspace #exit-chart-fullscreen{display:grid;place-items:center;position:absolute;z-index:3;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:42px;height:42px;padding:0;border:1px solid #72c9dc88;border-radius:50%;background:#071720d9;color:#eaffff;font-size:23px;line-height:1;box-shadow:0 3px 14px #0008}
@media(max-width:900px){#full-screen{min-width:82px;padding-inline:8px}.chart-top #full-screen{width:auto!important;height:38px!important}.fullscreen-label{display:inline}.portal-content,.portal-view,.portal-chart-card,.chart-top,.chart-workspace,.chart-stage,.structure-scroll{min-width:0;max-width:100%}.chart-top>*{min-width:0}}
@media(max-width:900px) and (orientation:portrait){body.chart-landscape-rotate #workspace,body.chart-landscape-rotate #workspace:fullscreen{inset:auto!important;top:0!important;left:100vw!important;width:100dvh!important;height:100vw!important;transform:rotate(90deg);transform-origin:top left}body.chart-landscape-rotate #workspace #exit-chart-fullscreen{top:max(8px,env(safe-area-inset-left));left:max(8px,env(safe-area-inset-top));right:auto}}
@media(max-width:420px){#full-screen{min-width:74px}.fullscreen-label{font-size:10px}}
