@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap";.app{max-width:1400px;margin:0 auto;padding:20px}.header{text-align:center;padding:20px;background:var(--surface);border-bottom:1px solid var(--line);margin-bottom:20px}.header h1{font-size:1.125rem;font-weight:500;margin:0;color:var(--text);letter-spacing:.02em}.header{display:flex;align-items:center;justify-content:center;gap:16px;position:relative}.logout-btn{position:absolute;right:16px;padding:6px 14px;border:1px solid #3b4a6b;border-radius:8px;background:transparent;color:#94a3b8;font-size:13px;cursor:pointer}.logout-btn:hover{color:#e2e8f0;border-color:#64748b}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:15px}.tab-nav{display:flex;gap:2px;margin-bottom:20px;background:var(--surface);border-radius:6px;padding:4px;border:1px solid var(--line)}.tab-button{flex:1;padding:9px 16px;background:transparent;border:none;border-radius:4px;color:var(--text-dim);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s ease}.tab-button:hover{color:var(--text);background:var(--surface-2)}.tab-button.active{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #0000004d}.main-content{min-height:500px}@media (max-width: 768px){.app{padding:12px}.header{padding:16px;margin-bottom:16px}.header h1{font-size:1rem}.tab-nav{padding:3px;margin-bottom:16px}.tab-button{padding:8px 12px;font-size:.875rem}}.gamma-wall{width:100%}.core-reminder{background:var(--gold-soft);border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:4px;padding:12px 16px;margin-bottom:20px}.reminder-title{font-size:.8125rem;font-weight:500;color:var(--gold);margin-bottom:8px;letter-spacing:.01em}.reminder-items{display:flex;flex-direction:column;gap:6px}.reminder-item{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;color:var(--text-dim);line-height:1.5}.reminder-dot{font-size:.625rem;margin-top:4px;flex-shrink:0}.reminder-dot.normal{color:var(--long)}.reminder-dot.warning{color:var(--gold)}.reminder-dot.danger{color:var(--short)}.daily-section{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px;margin-bottom:20px}.daily-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.daily-section h2{font-size:.9375rem;color:var(--text);margin:0;font-weight:500}.refresh-area{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.refresh-btn{padding:7px 14px;border:1px solid var(--line);border-radius:4px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s;background:var(--surface-2);color:var(--text)}.refresh-btn:hover:not(:disabled){background:var(--bg);border-color:var(--text-dim)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.refresh-btn.done{background:linear-gradient(135deg,#4ade80,#22c55e)}.refresh-btn.error{background:linear-gradient(135deg,#f87171,#ef4444)}.refresh-msg{font-size:.85rem;color:#888}.refresh-msg.running{color:#fbbf24}.refresh-msg.done{color:#4ade80}.refresh-msg.error{color:#f87171}.contract-reminder{background:linear-gradient(135deg,#1a1f3a,#0f1425);border:2px solid #667eea;border-radius:10px;padding:16px;margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.contract-row{display:flex;flex-direction:column;gap:8px}.contract-row+.contract-row{padding-top:12px;border-top:1px solid #2a3150}.contract-info{display:flex;align-items:center;gap:15px}.contract-label{font-size:.9rem;color:#667eea;font-weight:600}.contract-value{font-size:1.1rem;color:#fbbf24;font-weight:700}.contract-settlement{font-size:.85rem;color:#94a3b8}.rollover-status{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:6px}.rollover-status.danger{background:#f871711a;border:1px solid #f87171}.rollover-status.warning{background:#fbbf241a;border:1px solid #fbbf24}.rollover-label{font-size:.9rem;font-weight:600}.rollover-status.danger .rollover-label{color:#f87171}.rollover-status.warning .rollover-label{color:#fbbf24}.rollover-message{font-size:.85rem;color:#cbd5e1;line-height:1.5}.daily-header{display:flex;gap:30px;margin-bottom:20px;padding:15px;background:#0f1425;border-radius:8px}.info-item{display:flex;flex-direction:column;gap:5px}.info-item .label{font-size:.85rem;color:#888}.info-item .value{font-size:1.3rem;font-weight:700;color:#fff}.info-item .value.price{color:#4ade80}.comparison-box{background:#0f1425;border-radius:8px;padding:15px;margin-bottom:20px;border-left:4px solid #667eea}.comparison-box h3{font-size:1.2rem;margin-bottom:12px;color:#667eea}.key-changes{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.change-item{display:flex;gap:12px;padding:8px;background:#1a1f3a;border-radius:6px;font-size:.9rem}.change-item .strike{font-weight:700;color:#fbbf24;min-width:50px}.change-item .change-desc{color:#e0e0e0}.market-sentiment{padding:8px;background:#1a1f3a;border-radius:6px;color:#888;font-size:.9rem}.sentiment-text{color:#f87171;font-weight:700}.trading-plan{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}.plan-box{background:#0f1425;border-radius:8px;padding:15px}.plan-box.long{border-left:4px solid #4ade80}.plan-box.short{border-left:4px solid #f87171}.plan-box h3{font-size:1.2rem;margin-bottom:12px}.plan-detail{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:12px;background:#1a1f3a;border-radius:6px}.plan-detail span{font-size:.95rem;color:#e0e0e0}.reasons,.risks{margin-top:10px}.reasons strong,.risks strong{display:block;margin-bottom:6px;color:#667eea;font-size:.95rem}.reasons ul,.risks ul{list-style:none;padding-left:0}.reasons li,.risks li{padding:4px 0 4px 18px;position:relative;color:#b0b0b0;font-size:.9rem;line-height:1.4}.reasons li:before{content:"✓";position:absolute;left:0;color:#4ade80}.risks li:before{content:"⚠";position:absolute;left:0;color:#fbbf24}.no-plan{color:#888;font-style:italic;font-size:.9rem}.walls-table{margin-bottom:20px}.walls-table h3{font-size:1.2rem;margin-bottom:12px;color:#667eea}.walls-table table{width:100%;border-collapse:collapse;background:#0f1425;border-radius:8px;overflow:hidden;font-size:.9rem}.walls-table th{background:#667eea;color:#fff;padding:8px 10px;text-align:left;font-weight:600;font-size:.85rem}.walls-table td{padding:6px 10px;border-bottom:1px solid #1a1f3a;line-height:1.3}.walls-table tr:hover{background:#1a1f3a}.walls-table tr.current-price{background:#2a2f4a;font-weight:700}.walls-table .positive{color:#4ade80}.walls-table .negative{color:#f87171}.walls-table .action{padding:3px 6px;border-radius:4px;font-size:.85rem;white-space:nowrap}.walls-table .action.support{background:#4ade8033;color:#4ade80}.walls-table .action.resistance{background:#f8717133;color:#f87171}.walls-table .action.boost{background:#667eea33;color:#667eea}.walls-table .action.danger{background:#fbbf2433;color:#fbbf24}.walls-table .action.current{background:#667eea4d;color:#fff}.realtime-section{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px}.realtime-section h2{font-size:.9375rem;margin-bottom:16px;color:var(--text);font-weight:500}.query-form{display:flex;gap:12px;margin-bottom:20px;align-items:flex-end}.form-group label{font-size:.75rem;color:var(--text-faint);font-weight:500}.form-group input,.form-group select{font-family:var(--mono);padding:8px 12px;background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--text);font-size:.875rem;min-width:120px}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--text-dim)}.query-form button{padding:8px 20px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;color:var(--text);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.query-form button:hover{background:var(--bg);border-color:var(--text-dim)}.query-form button:disabled{opacity:.5;cursor:not-allowed}.realtime-result{background:var(--bg);border:1px solid var(--line-soft);border-radius:4px;padding:16px}.result-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}.result-header h3{font-family:var(--mono);font-size:1.125rem;color:var(--text);font-weight:600}.range-info,.wall-count,.comparison-date{font-size:.85rem;color:#888}.comparison-date{color:#667eea;font-weight:500}.quick-advice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:15px}.advice-item{padding:12px;background:#1a1f3a;border-radius:6px}.advice-item.long{border-left:3px solid #4ade80}.advice-item.short{border-left:3px solid #f87171}.advice-item strong{display:block;margin-bottom:6px;font-size:1rem}.advice-item span{font-size:.9rem;color:#e0e0e0}.trade-plans{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.trade-plan{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:20px}.trade-plan.long-plan{border-left:3px solid var(--long)}.trade-plan.short-plan{border-left:3px solid var(--short)}.trade-plan h4{font-size:.9375rem;margin-bottom:16px;font-weight:500;color:var(--text);letter-spacing:.01em}.plan-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}.strength-badge{font-family:var(--mono);background:var(--gold-soft);color:var(--gold);padding:3px 8px;border-radius:3px;font-size:.8125rem;font-weight:500;white-space:nowrap}.support-info{font-size:.8125rem;color:var(--text-dim)}.plan-entry,.plan-stop{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;padding:0;background:transparent}.plan-entry .label,.plan-stop .label{font-size:.8125rem;color:var(--text-faint);min-width:48px;font-weight:400}.plan-entry .value,.plan-stop .value{font-family:var(--mono);font-size:.9375rem;color:var(--text);font-weight:500}.plan-exits{margin:16px 0;padding:0;background:transparent}.exits-header{font-size:.8125rem;color:var(--text-dim);margin-bottom:10px;font-weight:500}.exit-level{display:flex;gap:12px;margin-bottom:8px;padding:10px;background:var(--surface-2);border-radius:4px;border-left:2px solid var(--line)}.exit-level:last-child{margin-bottom:0}.exit-number{font-family:var(--mono);color:var(--text-dim);font-weight:500;font-size:.875rem;min-width:16px}.exit-details{flex:1;display:flex;flex-direction:column;gap:3px}.exit-strike{font-size:.875rem;color:var(--text)}.exit-strike strong{font-family:var(--mono);color:var(--gold);font-weight:600}.exit-profit{font-family:var(--mono);font-size:.8125rem;color:var(--long);font-weight:500}.exit-reason{font-size:.75rem;color:var(--text-faint);font-style:normal}.plan-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line-soft)}.summary-item{display:flex;flex-direction:column;gap:2px}.summary-item .label{font-size:.75rem;color:var(--text-faint);font-weight:400}.summary-item .value{font-family:var(--mono);font-size:1rem;font-weight:600;color:var(--text)}.summary-item .value.profit{color:var(--long)}.no-opportunities{padding:32px 20px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:6px;margin-bottom:24px}.no-opp-icon{font-size:2rem;margin-bottom:8px;opacity:.3}.no-opp-title{font-size:.9375rem;color:var(--text-dim);margin-bottom:6px;font-weight:500}.no-opp-reason{font-size:.8125rem;color:var(--text-faint)}.wall-structure{margin-top:20px}.wall-structure h4{font-size:.9375rem;margin-bottom:12px;color:var(--text);font-weight:500}.wall-list{display:flex;flex-direction:column;gap:4px}.wall-item{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:4px;font-size:.875rem}.wall-item.current{background:#2a2f4a;border:1px solid #667eea;padding:8px 12px}.current-line{width:100%;text-align:center;font-weight:700;color:#667eea}.wall-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wall-details{display:flex;gap:15px;padding-left:60px;font-size:.85rem}.wall-analysis{padding:8px 12px;background:#667eea1a;border-left:3px solid #667eea;border-radius:4px;color:#e0e0e0;font-size:.85rem;line-height:1.5;margin-top:4px}.wall-consensus{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 10px;border-radius:4px;font-size:.82rem;margin-top:4px;border-left:3px solid}.wall-consensus.consensus-strong-support{background:#4ade801f;border-left-color:#4ade80}.wall-consensus.consensus-weak-support{background:#4ade800f;border-left-color:#86efac}.wall-consensus.consensus-neutral{background:#fbbf241a;border-left-color:#fbbf24}.wall-consensus.consensus-weak-resist{background:#f871710f;border-left-color:#fca5a5}.wall-consensus.consensus-strong-resist{background:#f871711f;border-left-color:#f87171}.consensus-label{font-weight:600;color:#e0e0e0;white-space:nowrap}.consensus-tiers{display:flex;flex-wrap:wrap;gap:4px}.tier-badge{padding:1px 6px;border-radius:3px;font-size:.78rem;white-space:nowrap}.tier-badge.tier-long{background:#4ade8033;color:#4ade80}.tier-badge.tier-short{background:#f8717133;color:#f87171}.wall-strike{font-weight:700;color:#fbbf24;min-width:50px;font-size:1rem}.wall-distance{color:#888;min-width:60px}.wall-gamma{color:#4ade80}.wall-oi{color:#888}.wall-action{padding:3px 8px;border-radius:4px;font-size:.85rem;white-space:nowrap;margin-left:auto}.wall-action.support{background:#4ade8033;color:#4ade80}.wall-action.resistance{background:#f8717133;color:#f87171}.wall-action.boost{background:#667eea33;color:#667eea}.wall-action.danger{background:#fbbf2433;color:#fbbf24}.wall-level-badge{padding:2px 7px;border-radius:4px;font-size:.78rem;font-weight:600;margin-left:auto;white-space:nowrap}.wall-level-badge.level-5{background:#ef444440;color:#fca5a5;border:1px solid rgba(239,68,68,.4)}.wall-level-badge.level-4{background:#fb923c33;color:#fdba74;border:1px solid rgba(251,146,60,.35)}.wall-level-badge.level-3{background:#fbbf2426;color:#fde68a;border:1px solid rgba(251,191,36,.3)}.wall-level-badge.level-2{background:#94a3b826;color:#cbd5e1;border:1px solid rgba(148,163,184,.25)}.wall-level-badge.level-1{background:#64748b1f;color:#94a3b8;border:1px solid rgba(100,116,139,.2)}.side-dominance{padding:2px 8px;border-radius:4px;font-size:.82rem;font-weight:600;white-space:nowrap}.side-dominance.side-long{background:#4ade8026;color:#4ade80}.side-dominance.side-short{background:#f8717126;color:#f87171}.side-dominance.side-neutral{color:#888}.wall-signal{color:#888;font-size:.85rem;flex:1}.loading{text-align:center;padding:40px;color:#888;font-size:1.1rem}.daily-error{padding:20px;background:#2a1a1a;border:1px solid #cc4444;border-radius:8px;color:#f88;font-size:14px;line-height:1.6}@media (max-width: 768px){.daily-header{flex-direction:column;gap:15px}.trading-plan,.quick-advice,.trade-plans{grid-template-columns:1fr}.query-form{flex-direction:column;align-items:stretch}.query-form button{width:100%}.walls-table{font-size:.85rem}.walls-table th,.walls-table td{padding:5px 6px}.wall-item{font-size:.85rem;padding:8px 10px}.wall-details{padding-left:0;flex-wrap:wrap}.wall-analysis{font-size:.8rem;padding:6px 10px}.result-header{flex-direction:column;align-items:flex-start}.trade-plan{padding:16px}.plan-header{flex-direction:column;align-items:flex-start;gap:8px}.plan-summary{grid-template-columns:1fr}.exit-level{flex-direction:column;gap:8px}.exit-number{align-self:flex-start}}.baseline-warning{margin:10px 0 14px;padding:10px 14px;border-left:4px solid #d97706;border-radius:4px;background:#fffbeb;color:#7c2d12;font-size:13px;line-height:1.6}.comparison-date.comparison-stale{color:#b45309;font-weight:600;text-decoration:underline dotted}.structure-analysis{margin:16px 0;padding:14px 16px;border:1px solid #3b4a6b;border-radius:10px;background:linear-gradient(180deg,#141b31,#10162a)}.structure-analysis h4{margin:0 0 10px;font-size:17px;color:#a5b4fc}.structure-bias{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.bias-badge{flex-shrink:0;padding:3px 10px;border-radius:20px;background:#4f46e5;color:#fff;font-size:15px;font-weight:600;white-space:nowrap}.structure-summary{font-size:15px;line-height:1.6;color:#cbd5e1}.structure-zones{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.structure-zone{flex:1 1 240px;padding:10px 12px;border-radius:8px;background:#1a2340}.structure-zone .zone-title{font-size:15px;font-weight:600;margin-bottom:6px}.structure-zone .zone-body{font-size:17px;font-weight:700;color:#e2e8f0}.structure-zone .zone-strong,.structure-zone .zone-near{display:block;margin-top:4px;font-size:14px;font-weight:400;color:#94a3b8}.support-zone{border-left:4px solid #22c55e}.resistance-zone{border-left:4px solid #ef4444}.structure-flip{margin-bottom:8px;padding:8px 12px;border-radius:6px;background:#1e1b4b;color:#c7d2fe;font-size:15px}.structure-list{margin-bottom:8px;padding:8px 12px;border-radius:6px;background:#221a33}.structure-list .list-title{font-size:14px;font-weight:600;color:#f0abfc;margin-bottom:4px}.structure-list .list-item{font-size:14px;color:#c4b5fd;line-height:1.7}.structure-comments{margin-top:10px}.structure-comment{padding:8px 12px;border-radius:6px;font-size:15px;line-height:1.6;margin-bottom:6px}.long-comment{background:#052e16;color:#86efac}.short-comment{background:#450a0a;color:#fca5a5}.structure-invalidation{margin-top:8px}.invalidation-item{padding:6px 12px;border-left:3px solid #f59e0b;background:#451a03;color:#fcd34d;font-size:14px;line-height:1.6;margin-bottom:4px;border-radius:0 6px 6px 0}.structure-signals{margin-top:10px}.signals-title{font-size:15px;font-weight:600;color:#fbbf24;margin-bottom:6px}.entry-signal{padding:8px 12px;border-radius:8px;margin-bottom:6px;border:1px solid transparent}.signal-long{background:#052e16;border-color:#166534}.signal-short{background:#450a0a;border-color:#7f1d1d}.signal-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.signal-dir{padding:1px 8px;border-radius:10px;font-size:14px;font-weight:700}.signal-long .signal-dir{background:#16a34a;color:#fff}.signal-short .signal-dir{background:#dc2626;color:#fff}.signal-name{font-size:15px;font-weight:600;color:#e2e8f0}.signal-rr{margin-left:auto;padding:1px 8px;border-radius:10px;font-size:14px;font-weight:600}.rr-ok{background:#14532d;color:#4ade80}.rr-bad{background:#450a0a;color:#f87171}.signal-line{font-size:14px;color:#cbd5e1;line-height:1.7}.signal-note{margin-top:4px;font-size:14px;color:#fcd34d}.signals-discipline{margin-top:8px;padding:6px 12px;border-radius:6px;background:#1e1b4b;color:#a5b4fc;font-size:14px;line-height:1.6}.trading-journal{width:100%}.journal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.journal-header h2{font-size:1.3rem;color:#667eea}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.btn-primary:hover{transform:translateY(-2px)}.btn-secondary{padding:12px 24px;background:#2a2f4a;border:none;border-radius:8px;color:#fff;font-size:1rem;cursor:pointer}.btn-secondary:hover{background:#3a3f5a}.trade-form{background:#1a1f3a;border-radius:12px;padding:25px;margin-bottom:25px;box-shadow:0 4px 20px #0000004d}.trade-form h3{font-size:1.4rem;margin-bottom:20px;color:#667eea}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.9rem;color:#888;font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:10px 14px;background:#0f1425;border:1px solid #2a2f4a;border-radius:6px;color:#fff;font-size:.95rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group textarea{resize:vertical;font-family:inherit}.checkbox-group{flex-direction:row;align-items:center;gap:10px}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.close-section{margin-top:25px;padding-top:20px;border-top:1px solid #2a2f4a}.close-section h4{font-size:1.1rem;margin-bottom:15px;color:#888}.sop-deviations{margin-top:15px;padding:15px;background:#0f1425;border-radius:8px;border-left:3px solid #fbbf24}.sop-deviations h4{font-size:1rem;margin-bottom:12px;color:#fbbf24}.deviation-checkboxes{display:flex;flex-direction:column;gap:10px}.deviation-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px;border-radius:6px;transition:background .2s}.deviation-checkbox:hover{background:#fbbf241a}.deviation-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.deviation-checkbox span{font-size:.95rem;color:#e0e0e0}.form-actions{display:flex;gap:15px;margin-top:20px}.form-actions button{flex:1}.trades-list{display:flex;flex-direction:column;gap:15px}.trade-card{background:#1a1f3a;border-radius:8px;padding:12px 15px;box-shadow:0 2px 8px #0003;transition:transform .2s}.trade-card:hover{transform:translateY(-1px)}.trade-card.win{border-left:4px solid #4ade80}.trade-card.loss{border-left:4px solid #f87171}.trade-card.open{border-left:4px solid #fbbf24}.trade-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #2a2f4a}.trade-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.trade-direction{font-size:1rem;font-weight:700}.trade-symbol{font-size:.9rem;color:#667eea;font-weight:600}.trade-price{font-size:1.2rem;font-weight:700;color:#4ade80}.trade-date{font-size:.85rem;color:#888}.trade-actions{display:flex;gap:10px}.btn-close,.btn-edit,.btn-delete{padding:6px 12px;background:#2a2f4a;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .2s}.btn-close:hover{background:#667eea}.btn-edit:hover{background:#fbbf24}.btn-delete:hover{background:#f87171}.trade-body{display:flex;flex-direction:column;gap:6px}.trade-row{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.trade-row .label{font-size:.85rem;color:#888;min-width:50px}.trade-row .value{font-size:.95rem;color:#e0e0e0}.trade-row .value.warn{color:#fbbf24;font-weight:700}.emotion{padding:4px 10px;border-radius:6px;background:#2a2f4a}.emotion.warn{background:#fbbf2433;color:#fbbf24}.trade-reason{display:flex;gap:8px;padding:8px 10px;background:#0f1425;border-radius:6px}.trade-reason .label{font-size:.85rem;color:#888;min-width:40px}.trade-reason .value{flex:1;font-size:.85rem;color:#e0e0e0;line-height:1.4}.trade-result{margin-top:8px;padding:10px;background:#0f1425;border-radius:6px}.result-row{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.profit{font-size:1.05rem;font-weight:700}.profit.positive{color:#4ade80}.profit.negative{color:#f87171}.deviated-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.deviated-tag{display:inline-block;padding:3px 8px;background:#fbbf2433;color:#fbbf24;border-radius:4px;font-size:.8rem;font-weight:600}.trade-notes{margin-top:10px;padding:10px;background:#1a1f3a;border-radius:6px}.trade-notes .label{font-size:.85rem;color:#888}.trade-notes .value{font-size:.9rem;color:#b0b0b0;line-height:1.5}@media (max-width: 768px){.journal-header{flex-direction:column;gap:15px;align-items:stretch}.form-row{grid-template-columns:1fr}.trade-title{flex-direction:column;align-items:flex-start;gap:8px}.trade-actions{flex-wrap:wrap}.form-actions{flex-direction:column}}.weekly-stats{width:100%}.weekly-stats h2{font-size:1.3rem;margin-bottom:15px;color:#667eea}.empty-state{text-align:center;padding:60px 20px;background:#1a1f3a;border-radius:12px;color:#888}.empty-state p:first-child{font-size:1.3rem;margin-bottom:10px}.empty-state p:last-child{font-size:1rem}.stats-container{display:flex;flex-direction:column;gap:20px}.weeks-list{background:#1a1f3a;border-radius:12px;padding:15px;order:2}.weeks-list h3{font-size:1.1rem;margin-bottom:12px;color:#667eea}.weeks-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px}.weeks-scroll::-webkit-scrollbar{height:6px}.weeks-scroll::-webkit-scrollbar-track{background:#0f1425;border-radius:3px}.weeks-scroll::-webkit-scrollbar-thumb{background:#667eea;border-radius:3px}.week-item{min-width:180px;padding:12px;background:#0f1425;border-radius:8px;cursor:pointer;transition:all .3s;border:2px solid transparent;flex-shrink:0}.week-item:hover{background:#2a2f4a}.week-item.active{background:#2a2f4a;border-color:#667eea}.week-item.excellent{border-color:#4ade80}.week-item.good{border-color:#667eea}.week-item.average{border-color:#fbbf24}.week-item.poor{border-color:#f87171}.week-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.week-label{font-weight:700;color:#fff;font-size:.95rem}.week-rating{font-size:.8rem;padding:2px 6px;border-radius:4px;background:#2a2f4a}.week-summary{display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:#888}.week-summary .positive{color:#4ade80}.week-summary .negative{color:#f87171}.week-detail{background:#1a1f3a;border-radius:12px;padding:20px;order:1}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #2a2f4a}.detail-header h3{font-size:1.4rem;color:#667eea}.week-period{font-size:.85rem;color:#888}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.stat-card{background:#0f1425;border-radius:8px;padding:12px;text-align:center}.stat-label{font-size:.8rem;color:#888;margin-bottom:6px}.stat-value{font-size:1.6rem;font-weight:700;color:#fff}.stat-value.good{color:#4ade80}.stat-value.warn{color:#fbbf24}.stat-value.positive{color:#4ade80}.stat-value.negative{color:#f87171}.stat-detail{font-size:.8rem;color:#888;margin-top:5px}.emotion-distribution{background:#0f1425;border-radius:8px;padding:15px;margin-bottom:20px}.emotion-distribution h4{font-size:1.05rem;margin-bottom:12px;color:#667eea}.sop-deviation-detail{background:#0f1425;border-radius:8px;padding:15px;margin-bottom:20px;border-left:3px solid #fbbf24}.sop-deviation-detail h4{font-size:1.05rem;margin-bottom:12px;color:#fbbf24}.deviation-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.deviation-stat{background:#1a1f3a;border-radius:6px;padding:12px;text-align:center}.deviation-label{display:block;font-size:.85rem;color:#888;margin-bottom:6px}.deviation-count{display:block;font-size:1.4rem;font-weight:700;color:#fbbf24}.emotion-bars{display:flex;flex-direction:column;gap:10px}.emotion-bar{display:flex;align-items:center;gap:10px}.emotion-label{min-width:80px;font-size:.9rem;color:#e0e0e0}.bar-container{flex:1;height:24px;background:#1a1f3a;border-radius:4px;overflow:hidden}.bar{height:100%;transition:width .3s ease}.bar.calm{background:linear-gradient(90deg,#4ade80,#22c55e)}.bar.excited{background:linear-gradient(90deg,#667eea,#764ba2)}.bar.anxious{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.bar.revenge{background:linear-gradient(90deg,#f87171,#ef4444)}.emotion-count{min-width:40px;text-align:right;font-size:.9rem;color:#888}.week-trades{background:#0f1425;border-radius:8px;padding:15px;margin-bottom:20px}.week-trades h4{font-size:1.05rem;margin-bottom:12px;color:#667eea}.mini-trades-list{display:flex;flex-direction:column;gap:6px}.mini-trade-card{background:#1a1f3a;border-radius:6px;padding:8px 12px}.mini-trade-header{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.mini-trade-header .long{color:#4ade80}.mini-trade-header .short{color:#f87171}.mini-trade-header .positive{color:#4ade80;font-weight:700}.mini-trade-header .negative{color:#f87171;font-weight:700}.suggestions{background:#0f1425;border-radius:8px;padding:15px}.suggestions h4{font-size:1.05rem;margin-bottom:12px;color:#667eea}.suggestions ul{list-style:none;padding:0}.suggestions li{padding:8px 12px;margin-bottom:6px;border-radius:6px;font-size:.9rem;line-height:1.4}.suggestions li.warn{background:#fbbf241a;border-left:3px solid #fbbf24;color:#fbbf24}.suggestions li.good{background:#4ade801a;border-left:3px solid #4ade80;color:#4ade80}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}.detail-header{flex-direction:column;align-items:flex-start;gap:10px}.emotion-label{min-width:70px;font-size:.85rem}.stat-value{font-size:1.5rem}.week-item{min-width:160px}.deviation-stats{grid-template-columns:1fr}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0f1425,#0a0e1f)}.login-form{width:320px;padding:32px 28px;border-radius:12px;background:#141b31;border:1px solid #3b4a6b;box-shadow:0 8px 30px #0006}.login-form h1{margin:0 0 4px;font-size:20px;color:#e2e8f0;text-align:center}.login-sub{margin:0 0 20px;font-size:14px;color:#94a3b8;text-align:center}.login-form label{display:block;margin-bottom:14px;font-size:13px;color:#cbd5e1}.login-form input{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;border-radius:8px;border:1px solid #3b4a6b;background:#0f1425;color:#e2e8f0;font-size:15px}.login-error{margin-bottom:12px;padding:8px 10px;border-radius:6px;background:#450a0a;color:#fca5a5;font-size:13px}.login-btn{width:100%;padding:11px;border:none;border-radius:8px;background:#4f46e5;color:#fff;font-size:15px;font-weight:600;cursor:pointer}.login-btn:disabled{opacity:.6;cursor:not-allowed}:root{--bg: #0b0d10;--surface: #12151a;--surface-2: #171b21;--line: #232830;--line-soft: #1b1f26;--text: #dfe3e8;--text-dim: #8b939e;--text-faint: #5a616b;--long: #26a96a;--long-soft: rgba(38, 169, 106, .14);--short: #d94a4a;--short-soft: rgba(217, 74, 74, .14);--gold: #c9a227;--gold-soft: rgba(201, 162, 39, .12);--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "IBM Plex Sans", -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}#root{min-height:100vh}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
