:root{color-scheme:light;--color-bg: #eef4f8;--color-surface: #ffffff;--color-surface-soft: #f7fafc;--color-text: #101828;--color-muted: #667085;--color-border: #d9e2ec;--color-primary: #0f766e;--color-primary-dark: #0f172a;--color-primary-soft: #ccfbf1;--color-accent: #4f46e5;--color-accent-soft: #e0e7ff;--color-sidebar: #0b1220;--color-sidebar-surface: #111c31;--color-sidebar-active: #0f766e;--color-sidebar-text: #ffffff;--color-sidebar-muted: rgba(255, 255, 255, .68);--color-positive: #067647;--color-positive-bg: #dcfae6;--color-negative: #b42318;--color-negative-bg: #fee4e2;--color-warning: #b54708;--shadow-card: 0 22px 46px rgba(15, 23, 42, .1);--shadow-soft: 0 10px 26px rgba(15, 23, 42, .07);--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;margin:0}body{color:var(--color-text);background:var(--color-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}a{color:inherit}code,pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}code{padding:2px 6px;border-radius:6px;color:#115e59;background:#e6fffb}button,input,textarea,select{font:inherit}.page,.login-page{width:min(100%,1180px);margin:0 auto}.page--stacked{display:grid;gap:22px}.page--stacked>*{min-width:0}.page-header,.hero-card,.section-card,.form-card,.login-card,.stat-card,.watchlist-card,.detail-card,.log-card,.empty-state{border:1px solid rgba(148,163,184,.22);background:#ffffffe6;box-shadow:var(--shadow-soft)}.page-header,.hero-card,.section-card,.form-card,.login-card{border-radius:var(--radius-lg)}.page-header,.hero-card{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:clamp(22px,4vw,34px)}.hero-card{overflow:hidden;color:#fff;background:linear-gradient(135deg,#0f172af5,#0f766ee0),radial-gradient(circle at 88% 18%,rgba(250,204,21,.22),transparent 16rem);box-shadow:0 26px 54px #0f172a2e}.page-header h1,.hero-card h1,.section-card h2,.form-card h2,.login-card h1{margin:0;color:inherit;letter-spacing:0;line-height:1.08}.page-header h1,.hero-card h1{margin-top:8px;font-size:clamp(32px,5vw,52px);font-weight:900}.section-card h2,.form-card h2{font-size:22px}.page-header p,.hero-card p,.section-card__header p,.watchlist-card p,.login-card p{max-width:720px;margin:10px 0 0;color:var(--color-muted)}.hero-card p{color:#ffffffc7}.eyebrow{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;color:#115e59;background:var(--color-primary-soft);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.hero-card .eyebrow{color:#ccfbf1;background:#ffffff1f}.ticker{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;color:#0f172a;background:#fde68a;font-size:12px;font-weight:900;letter-spacing:.04em}.stats-grid,.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stats-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}.stat-card,.detail-card{position:relative;overflow:hidden;display:grid;gap:8px;min-height:128px;padding:20px;border-radius:var(--radius-md)}.stat-card,.detail-card{min-height:104px;padding:16px}.stat-card:after,.detail-card:after{content:"";position:absolute;inset:auto 18px 18px auto;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#14b8a62e,#4f46e51f)}.stat-card__label,.stat-card span,.detail-card span,.metric-grid span,.watchlist-card__footer span,.hero-card__metric span{color:var(--color-muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.stat-card strong,.detail-card strong{position:relative;z-index:1;color:var(--color-text);line-height:1}.stat-card strong{font-size:28px}.detail-card strong{font-size:clamp(17px,2vw,22px);line-height:1.18;overflow-wrap:anywhere}.stat-card--positive{border-color:#06764738}.stat-card--negative{border-color:#b4231838}.section-card,.form-card{min-width:0;padding:clamp(18px,3vw,26px)}.section-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.section-card__header small{flex:0 0 auto;color:var(--color-muted);font-weight:700}.signal-list,.watchlist-grid,.log-list,.user-list,.target-list{display:grid;gap:14px}.watchlist-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.signal-card,.watchlist-card,.log-card,.user-row,.target-row,.empty-state{border-radius:var(--radius-md)}.signal-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;text-decoration:none;background:#fff;border:1px solid var(--color-border);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.signal-card:hover,.watchlist-card:hover{border-color:#0f766e6b;box-shadow:var(--shadow-card);transform:translateY(-2px)}.signal-card__main,.signal-card__metrics,.watchlist-card__top,.watchlist-card__header,.watchlist-card__footer,.log-card__header,.log-card__meta,.user-row,.target-row{display:flex;align-items:center;gap:12px}.signal-card__main{align-items:flex-start;flex-direction:column;gap:6px}.signal-card__main strong,.watchlist-card h2,.log-card strong,.user-row strong{color:var(--color-text)}.signal-card__main small,.watchlist-card small,.log-card small,.user-row small{color:var(--color-muted)}.watchlist-card__header{display:flex;align-items:center;gap:10px;width:100%;justify-content:space-between}.signal-card__metrics{flex-direction:column;align-items:flex-end;min-width:110px}.positive{color:var(--color-positive)!important}.negative{color:var(--color-negative)!important}.watchlist-card,.log-card{display:grid;gap:14px;padding:16px;border-radius:var(--radius-md)!important;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.watchlist-card{color:inherit;text-decoration:none;background:#fff;border:1px solid var(--color-border)}.watchlist-card--positive{border-color:#0676473d!important}.watchlist-card--negative,.log-card--error{border-color:#b423183d!important}.log-card--warn{border-top:4px solid var(--color-warning)!important}.watchlist-card__top,.watchlist-card__footer{justify-content:space-between;align-items:flex-start}.watchlist-card__top>div{display:grid;gap:8px;min-width:0}.signal-age{flex:0 0 auto;color:var(--color-muted);font-size:12px;font-weight:800;white-space:nowrap}.watchlist-card h2{margin:0;font-size:18px;line-height:1.18}.watchlist-card p{margin:0;font-size:13px;line-height:1.35}.watchlist-card__divider{height:1px;background:var(--color-border)}.watchlist-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.watchlist-metrics div{display:grid;gap:3px;min-width:0;padding:10px;background:#fff}.watchlist-metrics div:nth-child(odd){border-right:1px solid var(--color-border)}.watchlist-metrics div:nth-child(-n+2){border-bottom:1px solid var(--color-border)}.watchlist-metrics span{color:var(--color-muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.watchlist-metrics strong{min-width:0;color:var(--color-text);font-size:14px;line-height:1.2;overflow-wrap:anywhere}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-grid div{display:grid;gap:3px;min-width:0;padding:10px;border-radius:var(--radius-sm);background:var(--color-surface-soft)}.metric-grid strong{font-size:14px;overflow-wrap:anywhere}.market-chip,.direction-pill,.level-pill,.role-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border-radius:999px;color:#334155;background:#e2e8f0;font-size:12px;font-weight:900;text-transform:uppercase}.market-chip{width:fit-content;max-width:100%;color:#334155;background:#e2e8f0;white-space:nowrap}.market-chip--positive{color:var(--color-positive);background:var(--color-positive-bg)}.market-chip--negative{color:var(--color-negative);background:var(--color-negative-bg)}.direction-pill.positive{color:var(--color-positive)!important;background:var(--color-positive-bg)}.direction-pill.negative{color:var(--color-negative)!important;background:var(--color-negative-bg)}.load-more-row{display:flex;justify-content:center}.hero-card__metric{display:grid;gap:6px;min-width:168px;padding:18px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-md);background:#ffffffa3}.hero-card__metric span{color:#ffffffa8}.hero-card__metric strong{font-size:34px}.user-row{justify-content:space-between;padding:14px 16px;border:1px solid var(--color-border);background:var(--color-surface-soft)}.chart-card{overflow:hidden}.candle-chart{width:100%;height:clamp(260px,38vw,380px);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:linear-gradient(180deg,#f8fafceb,#fffffff5),repeating-linear-gradient(90deg,transparent 0 78px,rgba(148,163,184,.12) 79px 80px)}.candle-chart svg{display:block;width:100%;height:100%}.chart-gridline{stroke:#94a3b84d;stroke-width:1}.chart-signal-line{stroke:#4f46e5b8;stroke-dasharray:7 7;stroke-width:2}.chart-signal-price-line{stroke:#0f766ec7;stroke-dasharray:5 5;stroke-width:2}.chart-candle line{stroke-width:2}.chart-candle rect{stroke-width:1}.chart-candle--up line,.chart-candle--up rect{fill:#067647c7;stroke:var(--color-positive)}.chart-candle--down line,.chart-candle--down rect{fill:#b42318c7;stroke:var(--color-negative)}.chart-axis-label,.chart-price-label{fill:var(--color-muted);font-size:13px;font-weight:800}.chart-axis-label--signal{fill:var(--color-accent)}.chart-signal-price-label{fill:var(--color-primary);font-size:13px;font-weight:900}.target-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.target-table{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}.target-table th,.target-table td{padding:12px 14px;border-bottom:1px solid var(--color-border);text-align:left;overflow-wrap:anywhere;white-space:normal}.target-table th{color:var(--color-muted);background:var(--color-surface-soft);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.target-table td{color:var(--color-text);font-size:14px;font-weight:700}.target-table tbody tr:last-child td{border-bottom:0}.target-table .target-row--target td{background:#0676471a}.target-table .target-row--stoploss td{background:#b423181a}.chip-row{display:flex;flex-wrap:wrap;gap:10px}.chip-row button.active-chip{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.log-card p{margin:0;color:var(--color-muted)}.log-card__header,.log-card__meta{justify-content:space-between}.log-card__meta{flex-wrap:wrap;color:var(--color-muted);font-size:13px;font-weight:700}details{border-radius:var(--radius-sm);background:var(--color-surface-soft)}summary{cursor:pointer;padding:10px 12px;font-weight:800}pre{overflow:auto;margin:0;padding:0 12px 12px;color:#334155;white-space:pre-wrap}.form{display:grid;gap:14px}.form-card .form{margin-top:18px}.search-field{width:min(100%,620px)}.alert{padding:12px 14px;border-radius:var(--radius-sm);font-weight:700}.alert--success{color:var(--color-positive);background:var(--color-positive-bg)}.alert--error{color:var(--color-negative);background:var(--color-negative-bg)}.empty-state{padding:20px;color:var(--color-muted);text-align:center}.loading-state{display:grid;min-height:220px;place-items:center;border:1px solid rgba(148,163,184,.22);border-radius:var(--radius-lg);background:#ffffffd1;box-shadow:var(--shadow-soft)}.login-page{display:grid;min-height:100dvh;place-items:center;padding:24px;background:radial-gradient(circle at 20% 12%,rgba(20,184,166,.18),transparent 22rem),radial-gradient(circle at 80% 80%,rgba(250,204,21,.12),transparent 18rem),linear-gradient(135deg,#f8fafc,#edf6f3)}.login-card{width:min(100%,480px);padding:clamp(24px,4vw,34px);box-shadow:var(--shadow-card)}.login-card__brand{display:flex;align-items:center;gap:16px;margin-bottom:24px}.brand-mark{position:relative;display:inline-block;flex:0 0 auto;width:44px;height:44px;border-radius:8px;background:radial-gradient(circle at 72% 26%,rgba(250,204,21,.82),transparent .42rem),linear-gradient(135deg,#042f2e,#0f766e);box-shadow:0 16px 34px #14b8a63d;overflow:hidden}.brand-mark span{position:absolute;bottom:10px;width:5px;border-radius:999px;background:#ccfbf1}.brand-mark span:nth-child(1){left:12px;height:13px;opacity:.82}.brand-mark span:nth-child(2){left:20px;height:21px}.brand-mark span:nth-child(3){left:28px;height:28px;background:#facc15}.brand-mark--large{width:58px;height:58px;border-radius:12px}.brand-mark--large span{bottom:13px;width:7px}.brand-mark--large span:nth-child(1){left:16px;height:17px}.brand-mark--large span:nth-child(2){left:26px;height:28px}.brand-mark--large span:nth-child(3){left:36px;height:36px}.mat-mdc-card{color:inherit}.mat-mdc-form-field{--mdc-outlined-text-field-container-shape: 10px;--mdc-outlined-text-field-outline-color: rgba(148, 163, 184, .46);--mdc-outlined-text-field-hover-outline-color: rgba(15, 118, 110, .56);--mdc-outlined-text-field-focus-outline-color: var(--color-primary);--mdc-outlined-text-field-label-text-color: var(--color-muted);--mdc-outlined-text-field-focus-label-text-color: var(--color-primary);--mdc-outlined-text-field-input-text-color: var(--color-text);--mdc-outlined-text-field-container-color: rgba(255, 255, 255, .86);--mat-form-field-container-height: 52px;--mat-form-field-container-vertical-padding: 14px}.mat-mdc-form-field .mat-mdc-text-field-wrapper{background:#ffffffe0;box-shadow:0 8px 18px #0f172a0d}.mat-mdc-form-field.mat-focused .mat-mdc-text-field-wrapper{box-shadow:0 12px 24px #0f766e1a}.mat-mdc-unelevated-button,.mat-mdc-outlined-button,.mat-mdc-button{--mdc-protected-button-container-shape: 8px;--mdc-filled-button-container-shape: 8px;--mdc-outlined-button-container-shape: 8px;--mdc-text-button-container-shape: 8px;min-height:40px;letter-spacing:0;font-weight:800}.mat-mdc-unelevated-button.mat-primary,.mat-mdc-unelevated-button:not(:disabled){--mdc-filled-button-container-color: var(--color-primary);--mdc-filled-button-label-text-color: #ffffff;color:#fff!important;background:linear-gradient(135deg,#0f766e,#115e59)!important}.mat-mdc-unelevated-button{box-shadow:0 12px 22px #0f766e2e}.mat-mdc-unelevated-button:disabled{background:#94a3b847!important}.mat-mdc-outlined-button{--mdc-outlined-button-outline-color: rgba(15, 118, 110, .32);--mdc-outlined-button-label-text-color: var(--color-primary);background:linear-gradient(180deg,#f0fdfaf5,#ccfbf1b8);box-shadow:0 8px 18px #0f766e14}.mat-mdc-button{--mdc-text-button-label-text-color: var(--color-primary);background:#ccfbf175}.mat-mdc-button.mat-warn,.mat-mdc-outlined-button.mat-warn{background:#fee4e2b8}.mat-mdc-outlined-button.mat-warn{--mdc-outlined-button-outline-color: rgba(180, 35, 24, .3)}.mat-mdc-button:hover,.mat-mdc-outlined-button:hover,.mat-mdc-unelevated-button:hover{transform:translateY(-1px)}.mat-mdc-button,.mat-mdc-outlined-button,.mat-mdc-unelevated-button,.mat-mdc-icon-button{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}@media(max-width:720px){.stats-grid{display:grid;grid-auto-columns:minmax(132px,42vw);grid-auto-flow:column;grid-template-columns:none;gap:10px;margin:0 -16px;padding:0 16px 8px;overflow-x:auto;scroll-snap-type:x proximity}.stat-card{min-height:86px;padding:12px;scroll-snap-align:start}.stat-card:after{width:34px;height:34px;inset:auto 10px 10px auto;border-radius:8px}.stat-card__label,.stat-card span{font-size:10px}.stat-card strong{font-size:24px}.page-header,.hero-card,.section-card__header,.signal-card,.watchlist-card__top,.watchlist-card__footer,.user-row,.target-row{align-items:stretch;flex-direction:column}.signal-card__metrics{align-items:flex-start}.metric-grid{grid-template-columns:1fr}.hero-card__metric{min-width:0}}
