.summary-bar{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:16px 20px; margin-bottom:18px; }
.summary-metrics{ display:flex; gap:28px; flex-wrap:wrap; }
.summary-metric .label{ font-size:11.5px; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:.03em; margin-bottom:3px; }
.summary-metric .value{ font-size:17px; font-weight:700; font-family:var(--font-mono); }
.summary-actions{ display:flex; gap:8px; flex-wrap:wrap; }

.chart-placeholder{ height:220px; border-radius:10px; position:relative; overflow:hidden; }
.chart-placeholder canvas{ width:100%; height:100%; display:block; }

.list-row{ display:flex; align-items:center; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--border); gap:10px; }
.list-row:last-child{ border-bottom:none; }
.list-row .left{ display:flex; align-items:center; gap:10px; min-width:0; }
.list-row .icon-box{ width:34px; height:34px; border-radius:9px; background:var(--bg-subtle); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:13px; font-weight:700; }
.list-row .title{ font-size:13.5px; font-weight:600; }
.list-row .sub{ font-size:12px; color:var(--text-tertiary); }
.list-row .right{ text-align:right; }

.filter-bar{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:16px; }
.filter-bar .input{ height:38px; }
.filter-bar select.input{ width:auto; min-width:130px; }

.auth-shell{ min-height:100vh; display:flex; }
.auth-side{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px; }
.auth-visual{ flex:1; background:linear-gradient(160deg, var(--accent) 0%, var(--accent-active) 100%); display:flex; align-items:center; justify-content:center; color:#fff; padding:60px; position:relative; overflow:hidden; }
.auth-visual h2{ font-size:30px; max-width:380px; line-height:1.3; font-weight:700; letter-spacing:-0.01em; }
.auth-visual p{ opacity:0.85; margin-top:14px; max-width:360px; font-size:14.5px; }
.auth-card{ width:100%; max-width:380px; }
.auth-card .brand{ display:flex; align-items:center; gap:9px; margin-bottom:34px; font-weight:700; font-size:16px; }
.auth-card h1{ font-size:23px; margin-bottom:6px; }
.auth-card .sub{ color:var(--text-secondary); font-size:13.5px; margin-bottom:26px; }
.auth-divider{ display:flex; align-items:center; gap:10px; color:var(--text-tertiary); font-size:12px; margin:16px 0; }
.auth-divider::before, .auth-divider::after{ content:''; flex:1; height:1px; background:var(--border); }
@media (max-width:900px){ .auth-visual{ display:none; } }

.upload-box{ border:1.5px dashed var(--border-strong); border-radius:12px; padding:22px; text-align:center; cursor:pointer; transition:border-color var(--dur-fast), background var(--dur-fast); }
.upload-box:hover{ border-color:var(--accent); background:var(--accent-dim); }
.upload-box input{ display:none; }
.upload-preview{ display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--border-strong); border-radius:10px; margin-top:10px; }
.upload-preview img{ width:40px; height:40px; object-fit:cover; border-radius:6px; }
.step-track{ display:flex; align-items:center; gap:6px; margin-bottom:22px; }
.step-track .seg{ flex:1; height:4px; border-radius:99px; background:var(--bg-subtle); }
.step-track .seg.done{ background:var(--positive); }
.step-track .seg.active{ background:var(--accent); }

.signal-card{ display:flex; flex-direction:column; gap:10px; }
.signal-head{ display:flex; justify-content:space-between; align-items:center; }
.signal-dir{ font-weight:700; font-size:13px; display:flex; align-items:center; gap:5px; }
.confidence-bar{ height:5px; border-radius:99px; background:var(--bg-subtle); overflow:hidden; }
.confidence-bar>span{ display:block; height:100%; background:var(--accent); }
.news-card img, .news-thumb{ width:100%; height:130px; object-fit:cover; border-radius:10px 10px 0 0; background:var(--bg-subtle); }

.terminal-grid{ display:grid; grid-template-columns:220px 1fr 300px; gap:14px; }
@media (max-width:1200px){ .terminal-grid{ grid-template-columns:1fr; } }
.watch-item{ display:flex; justify-content:space-between; align-items:center; padding:9px 10px; border-radius:8px; cursor:pointer; }
.watch-item:hover, .watch-item.active{ background:var(--surface-hover); }
.watch-item .sym{ font-weight:600; font-size:13px; }
.order-ticket .segmented{ width:100%; }
.order-ticket .segmented button{ flex:1; }

.faq-item{ border-bottom:1px solid var(--border); }
.faq-q{ display:flex; justify-content:space-between; align-items:center; padding:15px 2px; cursor:pointer; font-weight:600; font-size:14px; }
.faq-a{ padding:0 2px 15px; color:var(--text-secondary); font-size:13.5px; display:none; }
.faq-item.open .faq-a{ display:block; }
.faq-item.open .faq-chevron{ transform:rotate(180deg); }
.faq-chevron{ transition:transform var(--dur); color:var(--text-tertiary); }

.cond-table th, .cond-table td{ text-align:left; }
.cond-table .num{ text-align:right; }

.kv-row{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--border); font-size:13.5px; }
.kv-row:last-child{ border-bottom:none; }
.kv-row .k{ color:var(--text-secondary); }
.kv-row .v{ font-weight:600; }

.hero-mini{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:28px; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:20px; }
.hero-mini h2{ font-size:20px; margin-bottom:6px; }
.hero-mini p{ color:var(--text-secondary); font-size:13.5px; max-width:480px; }

.spec-icon{ width:38px; height:38px; border-radius:10px; background:var(--accent-dim); color:var(--accent); display:flex; align-items:center; justify-content:center; margin-bottom:10px; }
