.psum-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#12161e80;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.psum-modal{background:#fff;border-radius:12px;box-shadow:0 18px 48px #10162447;width:100%;max-width:1080px;max-height:90vh;display:flex;flex-direction:column;overflow-y:auto}.psum-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border, #e5e8ee)}.psum-name{font-size:1.05rem;font-weight:700}.psum-code{margin-left:7px;color:#98a0ac;font-size:.85rem}.psum-title{margin-left:12px;padding:2px 9px;border-radius:12px;background:#eef2fd;color:var(--color-primary, #2456e6);font-size:.78rem;font-weight:700}.psum-close{border:none;background:none;font-size:1.5rem;line-height:1;color:#8a8f99;cursor:pointer;padding:0 4px}.psum-close:hover{color:#3b3f46}.psum-quote{padding:9px 18px 7px;font-size:.85rem;color:#4a4f57}.psum-quote strong{font-size:.95rem;color:#1c1f24}.psum-quote small{color:#98a0ac;font-size:.74rem}.psum-scroll{overflow:auto;flex:1;min-height:210px;padding:0 10px}.psum-head,.psum-quote,.psum-foot{flex-shrink:0}.psum-pct{display:block;font-size:.68rem;line-height:1.2}.psum-pct.up{color:#c05252}.psum-pct.dn{color:#4a67c8}.psum-table{border-collapse:collapse;width:100%;font-size:.83rem;white-space:nowrap}.psum-table th,.psum-table td{padding:7px 10px;border-bottom:1px solid #eef0f4;text-align:right}.psum-table thead th{position:sticky;top:0;background:#f7f9fc;color:#5a6270;font-weight:700;font-size:.76rem;z-index:2;border-bottom:1px solid #dfe3ea}.psum-table thead th.psum-grp{text-align:center;border-left:1px solid #dfe3ea}.psum-sticky{position:sticky;left:0;background:#fff;text-align:left!important;z-index:3}.psum-table thead th.psum-sticky{background:#f7f9fc;z-index:4}.psum-frame{font-weight:700;color:#3b3f46}.psum-phase{text-align:left!important;line-height:1.45}.psum-phase small{display:block;color:#98a0ac;font-size:.72rem}.psum-phase small.psum-pos{color:#6b7280}.psum-sig{margin-left:.3rem;padding:0 .28rem;border-radius:.2rem;font-size:.68rem}.psum-sig.buy{color:#c05252;background:#fdecec}.psum-sig.sell{color:#4a67c8;background:#eaeefb}.psum-sig.watch{color:#7a7f88;background:#f0f1f4}.psum-dir{font-weight:700}.psum-dir.up{color:#d81e1e}.psum-dir.down{color:#1a49d4}.psum-mid{font-weight:700;color:#3b3f46}.psum-ahead{color:#6b7280}.psum-na{color:#a8aeb8;text-align:center!important}.psum-empty{padding:40px;text-align:center;color:#98a0ac}.psum-foot{padding:11px 18px;border-top:1px solid var(--color-border, #e5e8ee);background:#fbfcfe;border-radius:0 0 12px 12px}.psum-foot p{margin:0 0 5px;font-size:.74rem;line-height:1.55;color:#8a8f99}.psum-foot p:last-child{margin-bottom:0}.psum-guide{margin:0 0 8px;padding-left:16px;font-size:.74rem;line-height:1.6;color:#6b7280}.psum-guide li{margin-bottom:2px}.psum-guide strong{color:#4a4f57}.psum-foot strong{color:#6b7280}@media(max-width:720px){.psum-backdrop{padding:8px}.psum-table{font-size:.78rem}.psum-table th,.psum-table td{padding:6px 7px}}.chart-page{display:flex;flex-direction:column;height:100vh;background:#fff}.chart-header{display:flex;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid var(--color-border, #e5e8ee);flex-wrap:wrap}.chart-logo{font-size:.95rem;font-weight:800;letter-spacing:2px;color:var(--color-primary, #2456e6);text-decoration:none;white-space:nowrap}.chart-toolbar{display:flex;align-items:center;gap:16px;padding:8px 18px;border-bottom:1px solid var(--color-border, #e5e8ee);flex-wrap:wrap}.chart-recent{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 18px;border-bottom:1px solid var(--color-border, #e5e8ee);background:#fbfcfe}.recent-toggle{padding:4px 8px;border:none;background:none;font-size:.76rem;font-weight:700;color:#8a8f99;cursor:pointer;white-space:nowrap}.recent-toggle:hover{color:var(--color-primary, #2456e6)}.recent-chip{padding:4px 11px;border:1px solid #d6dae2;border-radius:14px;background:#fff;font-size:.79rem;font-weight:600;color:#5a6270;cursor:pointer;white-space:nowrap}.recent-chip:hover{border-color:var(--color-primary, #2456e6);color:var(--color-primary, #2456e6)}.recent-chip.active{background:var(--color-primary, #2456e6);border-color:var(--color-primary, #2456e6);color:#fff;cursor:default}.chart-tf{display:flex;gap:4px}.chart-tf button{padding:5px 12px;border:1px solid #d6dae2;border-radius:7px;background:#fff;font-size:.82rem;font-weight:600;color:#6b7078;cursor:pointer}.chart-tf button.active{background:var(--color-primary, #2456e6);border-color:var(--color-primary, #2456e6);color:#fff}.chart-search{position:relative;flex:0 1 260px}.chart-search-input{width:100%;padding:8px 12px;font-size:.9rem;border:1px solid var(--color-border, #d7dbe4);border-radius:8px;outline:none}.chart-search-input:focus{border-color:var(--color-primary, #2456e6)}.chart-suggest{position:absolute;top:40px;left:0;right:0;background:#fff;border:1px solid var(--color-border, #d7dbe4);border-radius:8px;box-shadow:0 8px 22px #141e3c1f;list-style:none;margin:0;padding:4px;z-index:20;max-height:340px;overflow-y:auto}.chart-suggest li button{display:flex;justify-content:space-between;width:100%;padding:8px 10px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:.9rem}.chart-suggest li button:hover,.chart-suggest li button.active{background:#e9eefb}.chart-suggest-code{color:#98a0ac;font-size:.8rem}.chase-toggle{padding:6px 12px;font-size:.82rem;font-weight:600;color:#5a6270;background:#f4f6fa;border:1px solid var(--color-border, #d7dbe4);border-radius:16px;cursor:pointer;white-space:nowrap}.chase-toggle:hover:not(:disabled){border-color:var(--color-primary, #2456e6)}.chase-toggle.on{color:#fff;background:var(--color-primary, #2456e6);border-color:var(--color-primary, #2456e6)}.chase-toggle:disabled{opacity:.45;cursor:not-allowed}.sim-info{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:14px;background:#fdf6e8;border:1px solid #ecd9ae;color:#8a6d1f;font-size:.76rem;font-weight:600;white-space:nowrap}.sim-regen{border:none;background:none;color:#8a6d1f;font-size:.9rem;cursor:pointer;padding:0 2px}.sim-regen:hover{color:var(--color-primary, #2456e6)}.chart-title{display:flex;align-items:baseline;gap:8px}.chart-title-name{font-size:1.05rem;font-weight:700}.chart-title-code{color:#98a0ac;font-size:.85rem}.chart-title-price{font-size:1.05rem;font-weight:700}.chart-title-price.up{color:#d81e1e}.chart-title-price.down{color:#1a49d4}.chart-title-price small{font-size:.8rem;font-weight:600}.chart-title-date{color:#98a0ac;font-size:.8rem;white-space:nowrap}.chart-body{flex:1;position:relative;min-height:0}.chart-canvas{width:100%;height:100%;display:block;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:crosshair}.chart-status{position:absolute;top:12px;left:50%;transform:translate(-50%);margin:0;font-size:.9rem;color:#667;background:#f4f6fa;padding:6px 14px;border-radius:16px;z-index:5}.chart-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#667;font-size:.92rem;background:#ffffffb3;z-index:5}.chart-loading-overlay p{margin:0}.chart-spinner{width:30px;height:30px;border:3px solid #e2e7f0;border-top-color:var(--color-primary, #2456e6);border-radius:50%;animation:spin .8s linear infinite}.chase-spinner{display:inline-block;width:11px;height:11px;margin-right:6px;vertical-align:-1px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.chart-footer{padding:8px 18px;font-size:.75rem;color:#9aa1ab;border-top:1px solid var(--color-border, #e5e8ee)}.chart-subbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 16px;border-bottom:1px solid var(--color-border, #e2e5ec);background:#fbfcfe}.subbar-label{font-size:.75rem;font-weight:700;color:#8a8f99}.subbar-sep{width:1px;height:18px;background:#d6dae2;margin:0 6px}.subbar-btn{padding:4px 10px;border:1px solid #d6dae2;border-radius:7px;background:#fff;font-size:.78rem;font-weight:600;color:#5a6270;cursor:pointer}.subbar-btn:hover:not(:disabled){border-color:var(--color-primary, #2456e6)}.subbar-btn.active{background:var(--color-primary, #2456e6);border-color:var(--color-primary, #2456e6);color:#fff}.subbar-btn:disabled{opacity:.4;cursor:not-allowed}.subbar-btn-danger:hover:not(:disabled){border-color:#d81e1e;color:#d81e1e}.chart-ctxmenu{position:fixed;z-index:100;background:#fff;border:1px solid #d6dae2;border-radius:8px;box-shadow:0 6px 18px #14182224;padding:4px}.chart-ctxmenu button{display:block;width:100%;padding:6px 14px;border:none;border-radius:6px;background:none;font-size:.82rem;font-weight:600;color:#4a4f57;cursor:pointer;text-align:left;white-space:nowrap}.chart-ctxmenu button:hover{background:#fdecec;color:#d81e1e}.subbar-item{position:relative;display:flex;align-items:center}.subbar-gear{padding:4px 5px;margin-left:1px;border:1px solid #d6dae2;border-radius:7px;background:#fff;font-size:.72rem;color:#8a8f99;cursor:pointer}.subbar-gear:hover,.subbar-gear.active{border-color:var(--color-primary, #2456e6);color:var(--color-primary, #2456e6)}.ind-settings{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:210px;background:#fff;border:1px solid #d6dae2;border-radius:9px;box-shadow:0 6px 18px #1418221f;padding:10px 12px}.ind-set-head{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;font-weight:700;color:#3b3f46;margin-bottom:8px}.ind-set-close{border:none;background:none;font-size:.95rem;color:#8a8f99;cursor:pointer;padding:0 2px}.ind-set-list{display:flex;flex-direction:column;gap:6px}.ind-set-row{display:flex;align-items:center;gap:7px;font-size:.8rem}.ind-set-name{flex:1;font-weight:600;color:#4a4f57}.ind-set-row input[type=number]{width:74px;padding:3px 6px;border:1px solid #d6dae2;border-radius:6px;font-size:.8rem}.ind-set-del{border:none;background:none;color:#b9bec8;font-size:.9rem;cursor:pointer;padding:0 2px}.ind-set-del:hover{color:#d81e1e}.ind-set-add{display:flex;gap:6px;margin-top:4px}.ind-set-add input{flex:1;min-width:0;padding:4px 7px;border:1px solid #d6dae2;border-radius:6px;font-size:.78rem}.ind-set-add button,.ind-set-foot button{padding:4px 10px;border:1px solid #d6dae2;border-radius:6px;background:#f4f6fa;font-size:.76rem;font-weight:600;color:#5a6270;cursor:pointer}.ind-set-add button:hover,.ind-set-foot button:hover{border-color:var(--color-primary, #2456e6)}.ind-set-foot{display:flex;justify-content:flex-end;margin-top:10px;padding-top:8px;border-top:1px solid #eef0f4}
