:root{--bg: #0f0f1a;--surface: #1a1a2e;--surface2: #222240;--border: #2a2a4a;--text: #e0e0e0;--text2: #8888aa;--accent: #4fc3f7;--green: #66bb6a;--red: #ef5350;--yellow: #ffd54f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:1rem}header{text-align:center;padding:1.5rem 0 1rem}header h1{font-size:1.8rem;color:var(--accent);letter-spacing:2px}.subtitle{color:var(--text2);font-size:.9rem;margin-top:.25rem}.header-actions{margin-top:.75rem;display:flex;justify-content:center;gap:.75rem;align-items:center}.btn-push,.btn-check{padding:.4rem 1rem;border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:6px;cursor:pointer;font-size:.85rem}.btn-push:hover,.btn-check:hover{background:var(--accent);color:var(--bg)}.btn-check:disabled{opacity:.5;cursor:not-allowed}.push-status{color:var(--green);font-size:.85rem}.tabs{display:flex;justify-content:center;gap:0;margin:1rem 0;border-bottom:1px solid var(--border)}.tabs button{padding:.6rem 1.5rem;background:none;border:none;color:var(--text2);cursor:pointer;font-size:.95rem;border-bottom:2px solid transparent}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.monitor-layout{display:grid;grid-template-columns:280px 1fr;gap:1rem;align-items:start}@media(max-width:768px){.monitor-layout{grid-template-columns:1fr}}.stock-list h2{font-size:1.1rem;margin-bottom:.75rem;color:var(--accent)}.add-form{display:flex;gap:.4rem;margin-bottom:.75rem}.add-form input{flex:1;padding:.4rem .5rem;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem}.add-form button{padding:.4rem .7rem;background:var(--accent);color:var(--bg);border:none;border-radius:4px;cursor:pointer;font-weight:700}.search-wrapper{position:relative;flex:1}.suggestions{position:absolute;top:100%;left:0;right:0;background:var(--surface2);border:1px solid var(--border);border-radius:4px;list-style:none;max-height:200px;overflow-y:auto;z-index:10;margin-top:2px}.suggestions li{display:flex;gap:.5rem;padding:.4rem .5rem;cursor:pointer;font-size:.85rem;align-items:center}.suggestions li:hover{background:var(--border)}.suggest-code{font-weight:700;min-width:45px;color:var(--accent)}.suggest-name{flex:1;color:var(--text)}.suggest-market{font-size:.7rem;color:var(--yellow);border:1px solid var(--yellow);padding:.1rem .3rem;border-radius:3px}.stock-list ul{list-style:none}.stock-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:6px;cursor:pointer;transition:background .15s}.stock-item:hover{background:var(--surface2)}.stock-item.selected{background:var(--surface2);border-left:3px solid var(--accent)}.stock-item.disabled{opacity:.5}.stock-symbol{font-weight:700;font-size:.95rem;min-width:50px}.stock-name{flex:1;color:var(--text2);font-size:.85rem}.stock-actions{display:flex;gap:.3rem}.stock-actions button{background:none;border:none;cursor:pointer;font-size:.8rem;padding:.2rem;color:var(--text2)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.panel h3{font-size:1rem;color:var(--accent);margin-bottom:.5rem}.panel .date{color:var(--text2);font-size:.8rem;margin-bottom:.75rem}.indicator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.indicator-section h4{font-size:.85rem;color:var(--text2);border-bottom:1px solid var(--border);padding-bottom:.3rem;margin-bottom:.4rem}.indicator-row{display:flex;justify-content:space-between;padding:.2rem 0;font-size:.9rem}.indicator-row .value{font-weight:700;font-variant-numeric:tabular-nums}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.panel-header button{padding:.3rem .8rem;background:var(--accent);color:var(--bg);border:none;border-radius:4px;cursor:pointer;font-size:.8rem}.rule-form{background:var(--surface2);padding:.75rem;border-radius:6px;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.5rem}.rule-form input,.rule-form select{padding:.4rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.85rem}.rule-form .form-row,.rule-form .param-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.rule-form .param-row label{color:var(--text2);font-size:.8rem}.rule-form button[type=submit]{align-self:flex-end;padding:.4rem 1.2rem;background:var(--green);color:#fff;border:none;border-radius:4px;cursor:pointer}.rule-list{list-style:none}.rule-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.rule-item.disabled{opacity:.5}.rule-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.signal-badge{padding:.15rem .5rem;border-radius:3px;font-size:.7rem;font-weight:700}.signal-badge.buy{background:var(--green);color:#fff}.signal-badge.sell{background:var(--red);color:#fff}.signal-badge.info{background:var(--yellow);color:#333}.rule-desc{color:var(--text2);font-size:.8rem}.rule-actions{display:flex;gap:.3rem}.rule-actions button{background:none;border:none;cursor:pointer;font-size:.8rem;padding:.2rem;color:var(--text2)}.history-list{list-style:none}.history-item{padding:.6rem 0;border-bottom:1px solid var(--border)}.history-item.buy{border-left:3px solid var(--green);padding-left:.6rem}.history-item.sell{border-left:3px solid var(--red);padding-left:.6rem}.history-item.info{border-left:3px solid var(--yellow);padding-left:.6rem}.history-time{color:var(--text2);font-size:.75rem}.history-message{margin:.2rem 0;font-size:.9rem}.history-rule{color:var(--text2);font-size:.8rem}.empty-state{display:flex;justify-content:center;align-items:center;min-height:300px;color:var(--text2)}.empty{color:var(--text2);font-size:.85rem;padding:1rem 0;text-align:center}.error{color:var(--red)}
