/* Functional interaction layer: client navigation, preferences and cursor. */
:root[data-theme="light"] { --ink:#f4f1f8; --surface:#ffffff; --surface-2:#f8f6fb; --surface-3:#efebf5; --line:rgba(25,18,38,.13); --line-bright:rgba(25,18,38,.22); --paper:#17131e; --muted:#615a6d; --faint:#8b8395; --violet:#7951d9; --violet-light:#6840c4; --violet-wash:rgba(121,81,217,.1); }
:root[data-theme="light"] body { background:var(--ink); }
:root[data-motion="off"] *, :root[data-motion="off"] *::before, :root[data-motion="off"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
.app-main.is-swapping { opacity:.35; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease; }
.asset-controls { display:flex; align-items:center; gap:7px; }
.select-field { display:flex; align-items:center; height:34px; padding:0 8px; border:1px solid var(--line); border-radius:6px; background:rgba(0,0,0,.12); }
.select-field select { max-width:150px; color:var(--muted); border:0; outline:0; background:transparent; font-family:var(--mono); font-size:9px; cursor:pointer; }
.select-field option { color:#17131e; background:#fff; }
.settings-form { display:grid; gap:7px; margin:18px 0 8px; }
.setting-row { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 9px; border:1px solid var(--line); border-radius:6px; color:var(--muted); font-size:10px; }
.setting-row select { max-width:145px; color:var(--paper); border:0; outline:0; background:transparent; font-family:var(--mono); font-size:9px; text-align:right; cursor:pointer; }
.setting-row select option { color:#17131e; background:#fff; }
.setting-switch { cursor:pointer; }
.setting-switch input { position:absolute; opacity:0; pointer-events:none; }
.setting-switch i { width:30px; height:16px; position:relative; border:1px solid var(--line-bright); border-radius:20px; background:rgba(255,255,255,.08); transition:.25s; }
.setting-switch i::after { content:""; width:10px; height:10px; position:absolute; top:2px; left:3px; border-radius:50%; background:var(--faint); transition:.25s; }
.setting-switch input:checked + i { border-color:rgba(155,108,255,.7); background:var(--violet-wash); }
.setting-switch input:checked + i::after { left:15px; background:var(--violet-light); box-shadow:0 0 8px var(--violet); }
.settings-saved { min-height:15px; color:var(--green); font-family:var(--mono); font-size:9px; text-transform:uppercase; }
.core-cursor { width:24px; height:24px; position:fixed; top:-12px; left:-12px; z-index:9999; pointer-events:none; border:1px solid rgba(196,171,255,.82); border-radius:50%; opacity:0; mix-blend-mode:screen; transition:width .25s ease, height .25s ease, margin .25s ease, opacity .25s ease, border-color .25s ease; }
.core-cursor i { width:4px; height:4px; position:absolute; top:50%; left:50%; border-radius:50%; background:var(--violet-light); box-shadow:0 0 10px var(--violet-light); transform:translate(-50%,-50%); }
.core-cursor b { width:3px; height:3px; position:absolute; top:50%; left:50%; border-radius:50%; background:var(--violet); transform:translate(-50%,-50%); opacity:.65; }
.core-cursor.is-visible { opacity:1; }
.core-cursor.is-hover { width:42px; height:42px; top:-21px; left:-21px; border-color:var(--violet-light); background:rgba(155,108,255,.1); }
@media (pointer:coarse) { .core-cursor { display:none; } }
@media (max-width:840px) { .asset-controls { width:100%; flex-wrap:wrap; }.asset-controls .select-field { flex:1; }.asset-controls .select-field select { max-width:none; width:100%; }.asset-controls .toolbar-count { width:100%; }.listing-toolbar { gap:10px; } }

.alert-filter-selects { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; }
.alert-filter-selects .select-field { height:34px; }
@media (max-width:840px) { .alert-filter-selects { width:100%; justify-content:stretch; }.alert-filter-selects .select-field { flex:1; }.alert-filter-selects .compact-search { flex:1 1 100%; } }

.opportunity-section { margin-top:36px; }
.opportunity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.opportunity-card { display:block; padding:18px; color:inherit; text-decoration:none; transition:transform .25s ease,border-color .25s ease; }
.opportunity-card:hover { transform:translateY(-3px); border-color:rgba(155,108,255,.7); }
.opportunity-top,.opportunity-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.convergence-score { color:var(--violet-light); font-family:var(--mono); font-size:11px; }
.opportunity-metrics { display:flex; gap:10px; margin:18px 0 12px; padding:10px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--faint); font:9px var(--mono); }
.opportunity-metrics span { display:grid; gap:5px; }.opportunity-metrics b { color:var(--paper); font-weight:500; }.opportunity-card p { min-height:32px; color:var(--muted); font-size:11px; line-height:1.55; }.opportunity-bottom strong { color:var(--paper); font-size:12px; }.opportunity-bottom span { color:var(--faint); font:9px var(--mono); }
.analysis-rules { display:flex; gap:16px; align-items:flex-start; margin-top:14px; padding:20px; }.analysis-rules > div:first-child { color:var(--violet-light); }.analysis-rules h2 { margin:4px 0 7px; font-size:17px; }.analysis-rules p { max-width:780px; margin:0; color:var(--muted); font-size:11px; line-height:1.65; }
.analysis-summary { display:grid; grid-template-columns:1fr auto auto; gap:24px; align-items:center; margin:18px 0 12px; padding:20px; }.analysis-summary h2 { margin:5px 0 7px; font-size:20px; }.analysis-summary p { max-width:700px; margin:0; color:var(--muted); font-size:11px; line-height:1.6; }.analysis-score { display:grid; gap:4px; padding-left:20px; border-left:1px solid var(--line); }.analysis-score span,.analysis-score small { color:var(--faint); font:9px var(--mono); }.analysis-score strong { color:var(--violet-light); font-size:20px; }.conditions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:18px; }.condition-panel { padding:18px; }.condition-panel ul { display:grid; gap:7px; margin:12px 0 0; padding:0; list-style:none; }.condition-panel li { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:11px; }.condition-panel li i { display:grid; width:17px; height:17px; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--faint); font-style:normal; font-size:10px; }.condition-panel li.is-met i { border-color:rgba(93,226,159,.35); color:var(--green); }.condition-panel li.is-missing i { color:var(--red); }
@media (max-width:840px) { .opportunity-grid,.conditions-grid { grid-template-columns:1fr; }.analysis-summary { grid-template-columns:1fr; }.analysis-score { padding:14px 0 0; border-top:1px solid var(--line); border-left:0; }.analysis-rules { padding:16px; } }

.mini-chart { margin-top:18px; padding-top:14px; border-top:1px solid var(--line); }.mini-chart .panel-heading { margin-bottom:7px; }.rsi-chart { display:block; width:100%; height:86px; }
