:root{--bg: #09090c;--bg-raised: #111116;--bg-surface: #16161d;--bg-surface-2: #1d1d26;--border: #29292f;--border-soft: #1e1e24;--text: #f3f3f6;--text-dim: #96969f;--text-faint: #5c5c66;--gold: #d7a13b;--gold-strong: #f0bf5f;--gold-soft: rgba(215, 161, 59, .14);--gold-ink: #1a1206;--rise: #2fd07f;--rise-soft: rgba(47, 208, 127, .13);--fall: #f0475e;--fall-soft: rgba(240, 71, 94, .13);--neutral: #9294a1;--neutral-soft: rgba(146, 148, 161, .13);--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-lg: 20px;--radius-md: 14px;--radius-sm: 9px;--shadow-panel: 0 24px 60px -24px rgba(0, 0, 0, .7);--edge-panel: #000000;--edge-gold: #a37524;--edge-fall: #a82f3f;--edge-rise: #1f9c5f;--edge-depth: 6px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(ellipse 900px 500px at 50% -10%,rgba(215,161,59,.07),transparent 60%),radial-gradient(ellipse 700px 500px at 85% 55%,rgba(47,208,127,.045),transparent 60%),radial-gradient(ellipse 700px 500px at 10% 85%,rgba(240,71,94,.035),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}.app{max-width:640px;margin:0 auto;padding:32px 20px 60px;display:flex;flex-direction:column;gap:28px}.app-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border-soft)}.app-header-identity{display:flex;align-items:center;gap:14px}.brand-mark{display:block;border-radius:22%;box-shadow:0 6px 18px -6px #d7a13b80;flex-shrink:0}.eyebrow{margin:0 0 4px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.app-header h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.01em}.subtitle{margin:6px 0 0;color:var(--text-dim);font-size:13px;max-width:34ch}.status-row{display:flex;align-items:center;gap:4px;background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:999px;padding:6px}.status-dot-wrap{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-faint);padding:4px 10px;border-radius:999px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint);transition:background .3s ease,box-shadow .3s ease}.status-dot.status-connected{background:var(--rise);box-shadow:0 0 8px #2fd07fb3}.status-dot.status-disconnected,.status-dot.status-connecting{background:var(--fall);box-shadow:0 0 8px #f0475e80}.logout-btn{background:transparent;border:none;color:var(--text-faint);font-family:var(--font-ui);font-size:11px;font-weight:600;padding:4px 10px;cursor:pointer;border-radius:999px;transition:color .15s ease,background .15s ease}.logout-btn:hover{color:var(--fall);background:var(--fall-soft)}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.gate-card{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;background:linear-gradient(180deg,var(--bg-raised),var(--bg-surface));border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px 32px;box-shadow:0 var(--edge-depth) 0 0 var(--edge-panel),var(--shadow-panel);position:relative;overflow:hidden}.gate-card:before{content:"";position:absolute;top:-40%;left:50%;width:280px;height:280px;transform:translate(-50%);background:radial-gradient(circle,rgba(215,161,59,.16),transparent 70%);pointer-events:none}.gate-mark{margin-bottom:4px;box-shadow:0 10px 28px -8px #d7a13b99}.gate-title{margin:0;font-size:26px;font-weight:800;letter-spacing:-.01em}.gate-subtitle{margin:-6px 0 8px;color:var(--text-dim);font-size:13px;max-width:30ch}.gate-input{width:100%;background:var(--bg-surface-2);border:1px solid var(--border);color:var(--text);padding:13px 16px;border-radius:var(--radius-sm);font-size:15px;font-family:var(--font-ui);text-align:center;letter-spacing:.05em}.gate-input:focus{outline:none;border-color:var(--gold)}.gate-submit{width:100%}main{display:flex;flex-direction:column;gap:24px}.predictor-panel,.history-panel{position:relative;overflow:hidden}.predictor-panel:before,.history-panel:before{content:"";position:absolute;top:0;left:14px;right:14px;height:1px;background:linear-gradient(90deg,transparent,rgba(240,191,95,.6),transparent)}.predictor-panel{background:linear-gradient(180deg,var(--bg-raised),var(--bg-surface));border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 28px;display:flex;flex-direction:column;align-items:center;gap:26px;box-shadow:0 var(--edge-depth) 0 0 var(--edge-panel),var(--shadow-panel);transition:transform .15s ease}.predictor-panel:hover{transform:translateY(-2px)}.predictor-controls{width:100%;display:flex;flex-direction:column;gap:18px}.control-row{display:flex;gap:14px;flex-wrap:wrap}.control-field{flex:1;min-width:180px;display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.control-field-tf{flex:0 0 auto}.pair-select{position:relative}.pair-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-surface-2);border:1px solid var(--border);color:var(--text);padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-ui);font-weight:500;text-transform:none;letter-spacing:normal;cursor:pointer;box-shadow:0 3px 0 0 var(--edge-panel);transition:border-color .15s ease,background .15s ease,transform .12s ease,box-shadow .12s ease}.pair-select-trigger:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 0 var(--edge-panel)}.pair-select-trigger:hover:not(:disabled){border-color:var(--gold)}.pair-select.open .pair-select-trigger{border-color:var(--gold);background:var(--bg-surface)}.pair-select-trigger:disabled{opacity:.5;cursor:not-allowed}.pair-select-chevron{color:var(--text-faint);font-size:11px;transition:transform .15s ease}.pair-select.open .pair-select-chevron{transform:rotate(180deg);color:var(--gold)}.pair-select-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px;max-height:360px;overflow-y:auto;box-shadow:0 20px 50px -12px #000c;animation:dropIn .14s ease both}.pair-select-search{position:sticky;top:-8px;z-index:1;width:100%;background:var(--bg-raised);border:1px solid var(--border);color:var(--text);padding:9px 12px;margin-bottom:8px;border-radius:var(--radius-sm);font-size:13.5px;font-family:var(--font-ui);font-weight:500}.pair-select-search:focus{outline:none;border-color:var(--gold)}.pair-select-search::placeholder{color:var(--text-faint)}.pair-select-empty{margin:0;padding:16px 10px;text-align:center;color:var(--text-faint);font-size:13px}.pair-select-group+.pair-select-group{margin-top:6px}.pair-select-group-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);padding:8px 10px 4px}.pair-select-option{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text-dim);font-family:var(--font-ui);font-size:13.5px;font-weight:500;text-transform:none;letter-spacing:normal;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer}.pair-select-option:hover{background:var(--bg-raised);color:var(--text)}.pair-select-option.selected{background:var(--gold-soft);color:var(--gold-strong);font-weight:600}.tf-toggle{display:flex;flex-wrap:wrap;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;gap:3px}.tf-btn{background:transparent;border:none;color:var(--text-dim);padding:9px 14px;border-radius:7px;cursor:pointer;font-size:13px;font-family:var(--font-ui);font-weight:500;white-space:nowrap;transition:background .15s ease,color .15s ease}.tf-btn.active{background:var(--gold);color:var(--gold-ink);font-weight:700;box-shadow:0 3px 0 0 var(--edge-gold)}.tf-btn:disabled{opacity:.5;cursor:not-allowed}.control-actions{display:flex;justify-content:center}.btn{border:none;border-radius:999px;padding:15px 44px;font-size:15px;font-weight:700;font-family:var(--font-ui);letter-spacing:.01em;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .15s ease}.btn-primary{background:linear-gradient(180deg,var(--gold-strong),var(--gold));color:var(--gold-ink);box-shadow:0 5px 0 0 var(--edge-gold),0 10px 30px -8px #d7a13b8c}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 5px 0 0 var(--edge-gold),0 14px 34px -8px #d7a13bb3}.btn-primary:active{transform:translateY(5px);box-shadow:0 0 0 0 var(--edge-gold),0 4px 10px -4px #d7a13b80}.btn-danger{background:var(--fall-soft);color:var(--fall);border:1px solid rgba(240,71,94,.35);box-shadow:0 5px 0 0 var(--edge-fall)}.btn-danger:hover{background:#f0475e33}.btn-danger:active{transform:translateY(5px);box-shadow:0 0 0 0 var(--edge-fall)}.control-error{color:var(--fall);font-size:12px;text-align:center;margin:0;text-transform:none;letter-spacing:normal;font-weight:500}.disclaimer{color:var(--text-faint);font-size:10.5px;text-align:center;margin:0;text-transform:none;letter-spacing:normal;font-weight:500;line-height:1.5;max-width:40ch;align-self:center}.predictor-idle-hint{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--text-faint);animation:fadeIn .3s ease both}.predictor-idle-hint svg{color:var(--gold);opacity:.55}.predictor-idle-hint p{margin:0;font-size:13px;max-width:32ch}.waiting-panel{width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;animation:fadeIn .35s ease both}.waiting-label{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint)}.progress-ring{position:relative;display:flex;align-items:center;justify-content:center;margin:4px 0}.progress-ring-track{stroke:var(--bg-surface-2)}.progress-ring-fill{stroke:var(--gold);stroke-linecap:round;transition:stroke-dashoffset .2s linear,stroke .3s ease}.progress-ring-urgent .progress-ring-fill{stroke:var(--fall);animation:ringPulse 1s ease-in-out infinite}.progress-ring-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.countdown{font-family:var(--font-mono);font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:-.02em}.progress-ring-urgent .countdown{color:var(--fall)}.countdown-unit{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.waiting-pair{margin:0;font-size:17px;font-weight:700}.waiting-tf{color:var(--text-faint);font-weight:500;font-size:13px;font-family:var(--font-mono)}.waiting-hint{margin:0;font-size:12px;color:var(--text-faint);max-width:340px;line-height:1.5}.result-card{width:100%;display:flex;flex-direction:column;gap:20px;animation:resultIn .4s cubic-bezier(.2,.8,.2,1) both}.result-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:6px}.result-pair{font-weight:700;font-size:14px}.result-tf{color:var(--text-faint);font-weight:500;font-size:12px;font-family:var(--font-mono)}.result-time{font-size:11px;color:var(--text-faint);font-family:var(--font-mono)}.result-verdict-block{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 0;border-radius:var(--radius-md);background:var(--neutral-soft);box-shadow:0 4px 0 0 var(--edge-panel)}.result-verdict-block.signal-rise{background:radial-gradient(ellipse at center,var(--rise-soft),transparent 75%);box-shadow:0 4px 0 0 var(--edge-rise)}.result-verdict-block.signal-fall{background:radial-gradient(ellipse at center,var(--fall-soft),transparent 75%);box-shadow:0 4px 0 0 var(--edge-fall)}.result-icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;color:var(--neutral);background:var(--neutral-soft);animation:popIn .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:.05s}.result-icon.signal-rise{color:var(--rise);background:var(--rise-soft);box-shadow:0 0 0 1px #2fd07f4d}.result-icon.signal-fall{color:var(--fall);background:var(--fall-soft);box-shadow:0 0 0 1px #f0475e4d}.result-verdict{font-size:34px;font-weight:800;letter-spacing:-.01em;color:var(--neutral)}.result-verdict.signal-rise{color:var(--rise)}.result-verdict.signal-fall{color:var(--fall)}.strength-meter{display:flex;align-items:center;gap:10px}.strength-segments{flex:1;display:flex;gap:3px}.strength-segment{flex:1;height:8px;border-radius:3px;background:var(--bg-surface-2)}.strength-segment.lit.signal-rise{background:var(--rise)}.strength-segment.lit.signal-fall{background:var(--fall)}.strength-segment.lit.signal-neutral{background:var(--neutral)}.strength-value{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-dim);width:32px;text-align:right}.confluence-list{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border-soft);padding-top:18px}.confluence-row{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;font-size:13px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-surface-2)}.confluence-mark{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.confluence-mark.mark-rise{background:var(--rise-soft);color:var(--rise)}.confluence-mark.mark-fall{background:var(--fall-soft);color:var(--fall)}.confluence-mark.mark-blocking{background:var(--gold-soft);color:var(--gold-strong)}.confluence-mark.mark-neutral{background:var(--bg-raised);color:var(--text-faint)}.neutral-hint{margin:-8px 0 0;padding:12px 14px;background:var(--bg-surface-2);border:1px solid var(--border-soft);border-radius:var(--radius-sm);font-size:12.5px;line-height:1.5;color:var(--text-dim);text-align:center}.confluence-name{color:var(--text-dim);font-weight:500}.confluence-value{font-family:var(--font-mono);font-size:12px;color:var(--text);text-align:right;white-space:nowrap}.history-panel{background:var(--bg-raised);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:22px 22px 18px;box-shadow:0 var(--edge-depth) 0 0 var(--edge-panel),var(--shadow-panel);transition:transform .15s ease}.history-panel:hover{transform:translateY(-2px)}.history-panel h2{margin:0 0 14px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:380px;overflow-y:auto}.history-day-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);padding:14px 4px 6px}.history-entry:first-child .history-day-header{padding-top:0}.history-item{display:grid;grid-template-columns:22px 1fr 44px 52px 44px;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);font-size:12.5px;animation:fadeSlideIn .3s ease both;transition:background .12s ease}.history-item:hover{background:var(--bg-surface-2)}.history-item+.history-item{margin-top:2px}.history-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--neutral);background:var(--neutral-soft)}.history-icon.signal-rise{color:var(--rise);background:var(--rise-soft)}.history-icon.signal-fall{color:var(--fall);background:var(--fall-soft)}.history-pair{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-tf,.history-time{color:var(--text-faint);font-family:var(--font-mono);font-size:11.5px}.history-strength{text-align:right;color:var(--text-dim);font-family:var(--font-mono);font-size:11.5px}.history-streak{grid-column:2 / -1;font-size:10.5px;font-weight:700;color:var(--gold);letter-spacing:.02em}.empty{color:var(--text-faint);font-size:13px}.history-empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--text-faint);padding:20px 10px 6px}.history-empty svg{color:var(--text-faint);opacity:.6}.history-empty p{margin:0;font-size:12.5px;max-width:30ch;line-height:1.5}.app-footer{text-align:center;font-size:11px;color:var(--text-faint);padding-top:12px;border-top:1px solid var(--border-soft)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes dropIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes resultIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ringPulse{0%,to{opacity:1}50%{opacity:.55}}@media (max-width: 480px){.app-header{flex-direction:column}.result-verdict{font-size:28px}.countdown{font-size:32px}}
