.dashboard{display:flex;flex-direction:column;gap:20px;padding:0;min-height:calc(100vh - 60px);background:transparent;box-shadow:none}.market-panel{background:white;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000a;border:1px solid #f0f0f0;flex:1}.panel-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.panel-header h2{color:#1a1a1a;font-size:20px;margin:0;font-weight:600}.data-time{margin-top:8px;color:#8c8c8c;font-size:13px;font-weight:400}.data-container{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.stock-data,.coin-data,.gold-data{background:#fafafa;border-radius:12px;padding:20px;border:1px solid #f0f0f0}.gold-data{grid-column:span 2}.section-title{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #e8e8e8}.stock-item,.coin-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;margin-bottom:10px;background:white;border-radius:8px;transition:all .25s ease;position:relative;border:1px solid #f0f0f0}.stock-item:hover,.coin-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:#d9d9d9}.stock-name,.coin-name{font-weight:600;color:#1a1a1a;font-size:15px}.stock-price{font-weight:600;padding:4px 10px;border-radius:6px;transition:all .25s ease;font-size:15px}.coin-price{color:#1677ff;font-weight:600;font-size:15px}.gold-price{text-align:center;font-size:1.4em;color:#d4b106;font-weight:500;padding:20px;background:white;border-radius:6px}.gold-price .price-link{color:inherit;text-decoration:none;position:relative;padding:2px 4px;border-bottom:1px dashed #666;cursor:pointer;white-space:nowrap}.gold-price .price-link:hover{color:#f0a500;background-color:#f0a5001a}.gold-price .price-link:hover:after{content:"点击查看数据来源";position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;white-space:nowrap;margin-bottom:5px;z-index:1000}.error-message{color:#ff4d4f;padding:14px 16px;margin:12px 0;background-color:#fff2f0;border:1px solid #ffccc7;border-radius:8px;text-align:center;font-size:14px}.loading{text-align:center;color:#8c8c8c;padding:24px;font-size:14px}.stock-prices{display:flex;gap:12px;align-items:center}.reference-price{color:#8c8c8c;font-size:13px;background:#f5f5f5;padding:4px 8px;border-radius:6px;font-weight:500}.price-up{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.price-down{color:#ff4d4f;background:#fff1f0;border:1px solid #ffccc7}.price-up-strong{color:#fff;background:#52c41a;border:1px solid #389e0d}.price-down-strong{color:#fff;background:#ff4d4f;border:1px solid #d9363e}.price-diff{font-size:13px;margin-left:6px;padding:2px 6px;border-radius:4px}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.price-up-strong,.price-down-strong{animation:pulse 2s infinite}.stock-item:hover:after{content:"点击查看详情";position:absolute;right:0;top:-20px;background:rgba(0,0,0,.7);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;pointer-events:none}.price-link{color:inherit;text-decoration:none;position:relative;padding:2px 4px;border-bottom:1px dashed #666;cursor:pointer}.price-link:hover{color:#f0a500;background-color:#f0a5001a}.price-link:hover:after{content:"点击查看数据来源";position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;white-space:nowrap;margin-bottom:5px;z-index:1000}.empty-message{text-align:center;padding:24px;color:#8c8c8c;font-size:15px;background:#fafafa;border-radius:8px;border:1px dashed #d9d9d9}.stock-link,.coin-link{text-decoration:none;color:inherit;transition:opacity .3s}.stock-link:hover,.coin-link:hover{opacity:.8}.stock-link .stock-name,.coin-link .coin-name{position:relative}.stock-link .stock-name:after,.coin-link .coin-name:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transition:transform .3s;transform-origin:right}.stock-link:hover .stock-name:after,.coin-link:hover .coin-name:after{transform:scaleX(1);transform-origin:left}.event-manager{padding:0;background:transparent;min-height:auto}.panel-header{margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.panel-header h2{margin:0;color:#1a1a1a;font-size:20px;font-weight:600}.manager-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.memo-section,.event-section{background:white;border-radius:12px;border:1px solid #f0f0f0;padding:24px}.section-header{margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.section-header h3{margin:0;color:#1a1a1a;font-size:18px;font-weight:600}.memo-form{margin-bottom:24px}.memo-form input,.memo-form textarea{width:100%;padding:10px 14px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;transition:all .25s;background:white;margin-bottom:12px;font-family:inherit}.memo-form input:focus,.memo-form textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.memo-form textarea{resize:vertical;min-height:80px}.memo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;max-height:450px;overflow-y:auto;margin-bottom:20px;padding:4px}.memo-item{border:none;border-radius:4px;padding:12px 16px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0000001a,0 4px 8px #0000000d;position:relative;min-height:120px;display:flex;flex-direction:column}.memo-item:before{content:"";position:absolute;top:0;right:0;width:20px;height:20px;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.08) 50%);border-radius:0 4px 0 0}.memo-item:hover{box-shadow:0 8px 16px #00000026,0 4px 8px #0000001a;transform:translateY(-3px) rotate(-.5deg)}.memo-title{font-weight:600;color:#000000d9;font-size:14px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed rgba(0,0,0,.1);line-height:1.3}.memo-content{color:#000000a6;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word;flex:1}.memo-actions{position:absolute;bottom:8px;right:8px;display:flex;gap:4px;opacity:0;transition:opacity .2s}.memo-item:hover .memo-actions{opacity:1}.edit-btn{background:rgba(0,0,0,.5);padding:4px 8px;font-size:11px;border-radius:3px;transition:all .2s}.edit-btn:hover{background:rgba(0,0,0,.7);transform:none;box-shadow:none}.memo-actions .delete-btn{background:rgba(255,77,79,.6);padding:4px 8px;font-size:11px;border-radius:3px;transition:all .2s}.memo-actions .delete-btn:hover{background:rgba(255,77,79,.9);transform:none;box-shadow:none}.event-form{background:#fafafa;padding:20px;border-radius:8px;border:1px solid #f0f0f0;margin-bottom:20px}.form-inputs{display:flex;gap:12px}.form-inputs input{flex:1;padding:10px 14px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;transition:all .25s;background:white}.form-inputs input:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.form-inputs input[type=date]{min-width:160px;flex:0 0 auto}.event-list{background:#fafafa;border-radius:8px;border:1px solid #f0f0f0;overflow:hidden}.event-list table{width:100%;border-collapse:collapse}.event-list th,.event-list td{padding:14px 16px;text-align:left;border-bottom:1px solid #f0f0f0}.event-list th{background:#f5f5f5;font-weight:600;color:#1a1a1a;font-size:13px}.event-list tr:hover{background:#fff}.event-list .days-left{color:#8c8c8c;font-size:13px}.event-list .urgent .days-left{color:#ff4d4f;font-weight:600}button{background:#1677ff;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .25s}button:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}button:active{background:#0958d9;transform:translateY(0)}.delete-btn{background:rgba(255,77,79,.9);padding:4px 10px;font-size:12px;border-radius:4px}.delete-btn:hover{background:#ff7875;transform:scale(1.05);box-shadow:0 2px 6px #ff4d4f33}.delete-btn:active{background:#d9363e;transform:scale(.98)}.cancel-btn{background:#8c8c8c}.cancel-btn:hover{background:#a6a6a6;box-shadow:0 2px 6px #8c8c8c33}.form-actions{display:flex;gap:8px}.error-message{color:#ff4d4f;margin-bottom:16px;padding:12px 16px;background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;font-size:14px}.empty-message{text-align:center;padding:32px 16px;color:#8c8c8c;background:#fafafa;border-radius:8px;border:1px dashed #d9d9d9;font-size:14px}@media (max-width: 1024px){.manager-layout{grid-template-columns:1fr}}@media (max-width: 768px){.form-inputs{flex-direction:column}.form-inputs input[type=date]{width:100%}.event-list th:nth-child(3),.event-list td:nth-child(3){display:none}}.stock-manager{padding:0;background:transparent;border-radius:0;box-shadow:none;max-width:unset;margin:0;width:auto}.stock-manager .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.stock-manager .panel-header h2{color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.refresh-button{background:#f5f5f5;border:1px solid #d9d9d9;border-radius:8px;padding:8px 16px;cursor:pointer;font-size:16px;transition:all .3s;display:flex;align-items:center;gap:6px}.refresh-button:hover:not(:disabled){background:#e6e6e6;transform:scale(1.05)}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.refresh-button.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#595959}.spinner{width:40px;height:40px;border:4px solid #f0f0f0;border-top-color:#1677ff;border-radius:50%;animation:spin 1s linear infinite}.error-message{background:#fff2f0;border:1px solid #ffccc7;color:#ff4d4f;padding:12px 16px;border-radius:8px;margin-bottom:16px}.sector-tabs{display:flex;gap:12px;margin-bottom:20px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.sector-tab{padding:10px 20px;background:white;border:1px solid #d9d9d9;border-radius:8px;cursor:pointer;font-weight:500;color:#595959;transition:all .3s;white-space:nowrap;flex-shrink:0}.sector-tab:hover{border-color:#1677ff;color:#1677ff}.sector-tab.active{background:#1677ff;color:#fff;border-color:#1677ff}.sector-tab.custom-sector{position:relative;padding-right:60px}.sector-tab .edit-group-btn,.sector-tab .delete-group-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.1);border:none;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:12px;color:inherit;opacity:.6;transition:all .3s;cursor:pointer}.sector-tab .edit-group-btn{right:32px}.sector-tab .edit-group-btn:hover{opacity:1;background:rgba(22,119,255,.2);color:#1677ff}.sector-tab .delete-group-btn{right:8px}.sector-tab .delete-group-btn:hover{opacity:1;background:rgba(255,77,79,.2);color:#ff4d4f}.sector-tab.new-group-btn{background:linear-gradient(135deg,#1677ff 0%,#1395ff 100%);color:#fff;border:none}.sector-tab.new-group-btn:hover{background:linear-gradient(135deg,#1395ff 0%,#1677ff 100%);transform:scale(1.05);box-shadow:0 2px 8px #1677ff4d}.search-bar{margin-bottom:20px}.search-input{width:100%;max-width:400px;padding:12px 16px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;transition:all .3s;background:white}.search-input:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}.stock-card{background:white;border:1px solid #f0f0f0;border-radius:12px;padding:20px;cursor:pointer;transition:all .3s;box-shadow:0 1px 3px #0000000d}.stock-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a;border-color:#1677ff}.stock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.stock-name{font-size:16px;font-weight:600;color:#1a1a1a}.stock-code{font-size:13px;color:#8c8c8c;background:#f5f5f5;padding:4px 8px;border-radius:4px}.stock-price{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.current-price{font-size:28px;font-weight:700}.change-percent{font-size:16px;font-weight:600}.stock-info{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-size:13px}.stock-info .info-item{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f5f5f5}.stock-info .info-item:last-child{border-bottom:none}.stock-info .label{color:#8c8c8c}.stock-info .value{font-weight:500;color:#1a1a1a}.text-up{color:#ef5350}.text-down{color:#26a69a}.text-flat{color:#8c8c8c}.empty-state{text-align:center;padding:60px 20px;color:#8c8c8c;background:white;border-radius:12px;border:1px solid #f0f0f0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:white;border-radius:16px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out;box-shadow:0 12px 28px #00000026}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #f0f0f0;position:sticky;top:0;background:white;z-index:1;border-radius:16px 16px 0 0}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#1a1a1a}.close-button{background:#f5f5f5;border:none;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:18px;color:#595959;transition:all .3s}.close-button:hover{background:#e6e6e6;color:#1a1a1a}.modal-body{padding:24px}.detail-section{margin-bottom:24px}.detail-section:last-child{margin-bottom:0}.detail-section h4{margin:0 0 16px;font-size:16px;font-weight:600;color:#1a1a1a;border-left:3px solid #1677ff;padding-left:12px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.detail-item{display:flex;flex-direction:column;gap:6px;padding:12px;background:#fafafa;border-radius:8px;border:1px solid #f0f0f0}.detail-item .label{font-size:13px;color:#8c8c8c;font-weight:500}.detail-item .value{font-size:15px;color:#1a1a1a;font-weight:600;word-break:break-all}.update-time{text-align:right;color:#8c8c8c;font-size:12px;padding:12px 0;border-top:1px solid #f0f0f0;margin-top:20px}@media (max-width: 768px){.stock-manager .panel-header{flex-direction:column;align-items:flex-start;gap:12px}.sector-tabs{gap:8px}.sector-tab{padding:8px 16px;font-size:14px}.stock-grid{grid-template-columns:1fr;gap:12px}.stock-card{padding:16px}.stock-price .current-price{font-size:24px}.stock-price .change-percent{font-size:14px}.modal-content{max-height:95vh}.modal-header,.modal-body{padding:16px}.detail-grid{grid-template-columns:1fr;gap:12px}.search-input{max-width:100%}}@media (max-width: 480px){.stock-manager .panel-header h2{font-size:18px}.sector-tab{padding:6px 12px;font-size:13px}.stock-info{grid-template-columns:1fr;gap:4px}.modal-content{border-radius:12px}.modal-header{border-radius:12px 12px 0 0}}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#1a1a1a}.form-group .hint{font-size:12px;color:#8c8c8c;font-weight:400;margin-left:8px}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;font-family:inherit;transition:all .3s;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.form-group textarea{resize:vertical;font-family:monospace}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #f0f0f0}.btn-cancel,.btn-primary{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s}.btn-cancel{background:#f5f5f5;color:#595959}.btn-cancel:hover{background:#e6e6e6}.btn-primary:hover{background:#1395ff}.fund-manager{padding:0;background:transparent;border-radius:0;box-shadow:none;max-width:unset;margin:0;width:auto}.fund-manager .panel-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.fund-manager .panel-header h2{color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.fund-manager form{display:flex;gap:12px;margin-bottom:24px}.fund-manager input{padding:10px 14px;border:1px solid #d9d9d9;border-radius:8px;flex:1;background:white;transition:all .25s}.fund-manager input:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.fund-manager button{padding:10px 20px;background:#1677ff;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .25s}.fund-manager button:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.reference-list{background:white;border-radius:12px;border:1px solid #f0f0f0;overflow:hidden}.reference-list table{width:100%;border-collapse:collapse}.reference-list th,.reference-list td{padding:14px 16px;text-align:left;border-bottom:1px solid #f0f0f0}.reference-list th{background:#fafafa;font-weight:600;color:#1a1a1a;font-size:14px}.reference-list tr:hover td{background:#fafafa}.reference-form{display:flex;flex-direction:column;gap:16px;background:#fafafa;padding:20px;border-radius:12px;border:1px solid #f0f0f0;margin-bottom:24px}.form-inputs{display:flex;gap:12px;align-items:center}.form-buttons{display:flex;gap:12px}.edit-button{padding:6px 14px;background:#1677ff;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .25s}.edit-button:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.cancel-button{padding:10px 20px;background:white;color:#595959;border:1px solid #d9d9d9;border-radius:8px;font-weight:500;transition:all .25s}.cancel-button:hover{background:#fafafa;border-color:#1677ff;color:#1677ff}.notification-status{padding:4px 10px;border-radius:6px;font-size:13px;font-weight:500}.notification-status.enabled{background:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.notification-status.disabled{background:#fff1f0;color:#ff4d4f;border:1px solid #ffccc7}.delete-button{margin-left:8px;background:#ff4d4f;padding:6px 14px;border-radius:8px;transition:all .25s}.delete-button:hover{background:#ff7875;transform:translateY(-1px);box-shadow:0 2px 6px #ff4d4f33}td button{padding:5px 12px;margin:0 4px;font-size:13px;border-radius:6px;transition:all .25s}.fund-manager .form-inputs input{max-width:140px;min-width:80px;flex:unset}.reference-list td{vertical-align:middle}.fund-manager .edit-button,.fund-manager .delete-btn{display:inline-block;margin:0 2px;padding:5px 12px;font-size:13px;border-radius:6px;border:none;cursor:pointer;transition:all .25s;font-weight:500}.fund-manager .edit-button{background:#1677ff;color:#fff}.fund-manager .edit-button:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.fund-manager .delete-btn{background:#fff2f0;color:#ff4d4f;border:1px solid #ffccc7}.fund-manager .delete-btn:hover{background:#ffccc7;color:#d9363e;border-color:#ff7875}.notification-settings-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:9999;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.notification-settings-content{background:white;border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:24px;min-width:340px;max-width:90vw;animation:slideIn .25s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.notification-settings-content h3{color:#1a1a1a;font-size:20px;font-weight:600;margin:0 0 20px}.form-group{margin-bottom:18px;display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:500;margin-bottom:4px;color:#595959;font-size:14px}.form-group input[type=text],.form-group input[type=email]{padding:10px 14px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;background:white;transition:all .25s}.form-group input[type=text]:focus,.form-group input[type=email]:focus{border-color:#1677ff;outline:none;box-shadow:0 0 0 3px #1677ff14}.form-actions{display:flex;gap:12px;margin-top:20px;justify-content:flex-end}.form-actions button{padding:10px 20px;border-radius:8px;border:none;font-size:14px;font-weight:500;background:#1677ff;color:#fff;cursor:pointer;transition:all .25s}.form-actions button:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.form-actions button:active{transform:translateY(0)}.form-actions .cancel{background:white;color:#595959;border:1px solid #d9d9d9}.form-actions .cancel:hover{background:#fafafa;border-color:#1677ff;color:#1677ff}.form-actions button:disabled{background:#d9d9d9;cursor:not-allowed;transform:none}.form-actions button:disabled:hover{background:#d9d9d9;transform:none;box-shadow:none}.message{margin-top:12px;color:#52c41a;font-size:14px;padding:10px 14px;background:#f6ffed;border:1px solid #b7eb8f;border-radius:8px;text-align:center}.message.error{color:#ff4d4f;background:#fff2f0;border-color:#ffccc7}.hkus-manager{background:#fff;border-radius:12px;border:1px solid #f0f0f0;padding:24px;margin:0;max-width:unset}.hkus-manager .panel-header{display:flex;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.hkus-manager .panel-header h2{font-size:20px;font-weight:600;margin:0;color:#1a1a1a}.hkus-manager .error-message{color:#ff4d4f;margin-bottom:16px;font-size:14px;padding:12px 16px;background:#fff2f0;border:1px solid #ffccc7;border-radius:8px}.hkus-manager .reference-form{margin-bottom:24px;background:#fafafa;padding:20px;border-radius:12px;border:1px solid #f0f0f0}.hkus-manager .form-inputs{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.hkus-manager .form-inputs input,.hkus-manager .form-inputs select{padding:10px 14px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;min-width:90px;max-width:160px;background:white;transition:all .25s}.hkus-manager .form-inputs input:focus,.hkus-manager .form-inputs select:focus{border-color:#1677ff;box-shadow:0 0 0 3px #1677ff14;outline:none}.hkus-manager .form-inputs input[type=checkbox]{min-width:unset;max-width:unset;margin-right:4px}.hkus-manager .form-inputs button{padding:10px 20px;border-radius:8px;border:none;background:#1677ff;color:#fff;font-size:14px;font-weight:500;cursor:pointer;margin-left:2px;transition:all .25s}.hkus-manager .form-inputs button:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.hkus-manager .form-inputs button[type=button]{background:white;color:#595959;border:1px solid #d9d9d9}.hkus-manager .form-inputs button[type=button]:hover{background:#fafafa;border-color:#1677ff;color:#1677ff}.hkus-manager .reference-table-wrapper{overflow-x:auto;background:white;border-radius:12px;border:1px solid #f0f0f0}.hkus-manager .reference-table{width:100%;border-collapse:collapse;font-size:14px}.hkus-manager .reference-table th,.hkus-manager .reference-table td{border:1px solid #f0f0f0;padding:14px 16px;text-align:center}.hkus-manager .reference-table th{background:#fafafa;font-weight:600;color:#1a1a1a}.hkus-manager .reference-table tr:hover td{background:#fafafa}.hkus-manager .edit-btn{background:#1677ff;color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:13px;margin-right:4px;cursor:pointer;font-weight:500;transition:all .25s}.hkus-manager .edit-btn:hover{background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.hkus-manager .delete-btn{background:#fff2f0;color:#ff4d4f;border:1px solid #ffccc7;border-radius:6px;padding:5px 12px;font-size:13px;cursor:pointer;font-weight:500;transition:all .25s}.hkus-manager .delete-btn:hover{background:#ffccc7;color:#d9363e;border-color:#ff7875}.app{width:100%;min-height:100vh;background:#f5f7fa;padding:0}nav{display:flex;align-items:center;padding:16px 24px;background:white;box-shadow:0 2px 8px #0000000f;max-width:1400px;width:calc(100% - 48px);margin:24px auto;box-sizing:border-box;border-radius:12px}nav .nav-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}nav a{text-decoration:none;color:#595959;padding:8px 16px;border-radius:8px;transition:all .25s ease;font-size:14px;font-weight:500}nav a:hover{background:#f0f7ff;color:#1677ff}nav a.active{background:#1677ff;color:#fff;font-weight:500}nav a.active:after{display:none}.dashboard,.event-manager,.stock-manager,.coin-manager,.fund-manager,.hkus-manager,.monitor-manager,.dot-manager{max-width:1400px;width:calc(100% - 48px);margin:0 auto 24px;background:white;border-radius:12px;box-shadow:0 2px 8px #0000000a;padding:24px;box-sizing:border-box}.icon-group{display:flex!important;align-items:center!important;gap:12px!important;margin-left:20px!important}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid #e8e8e8;background:#fafafa;color:#1677ff;cursor:pointer;transition:all .25s ease;font-size:18px}.icon-button svg{width:18px;height:18px}.icon-button:hover{border-color:#1677ff;background:#f0f7ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff26}.icon-button span{font-size:16px}.logout-button{display:inline-flex;align-items:center;gap:6px;background:#ff4d4f;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s ease}.logout-button:hover{background:#ff7875;transform:translateY(-1px);box-shadow:0 2px 6px #ff4d4f40}.logout-icon{font-size:16px}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f7fa;padding:20px}.login-box{background:white;padding:32px;border-radius:12px;box-shadow:0 2px 8px #0000000f;min-width:320px;max-width:400px;width:100%;text-align:center;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-box h2{color:#1a1a1a;font-size:24px;font-weight:600;margin:0 0 24px}.login-box .error-message{margin-bottom:16px;padding:12px 16px;background:#fff2f0;color:#ff4d4f;border:1px solid #ffccc7;border-radius:8px;font-size:14px;text-align:center}.login-form{text-align:left}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#595959}.form-group input{width:100%;padding:10px 14px;font-size:14px;border:1px solid #d9d9d9;border-radius:8px;box-sizing:border-box;background:white;transition:all .25s}.form-group input:focus{border-color:#1677ff;outline:none;box-shadow:0 0 0 3px #1677ff14}.form-group input::placeholder{color:#bfbfbf}.login-button{width:100%;padding:12px 20px;font-size:16px;font-weight:500;border-radius:8px;background:#1677ff;color:#fff;border:none;cursor:pointer;transition:all .25s;margin-top:8px}.login-button:hover:not(:disabled){background:#4096ff;transform:translateY(-1px);box-shadow:0 2px 6px #1677ff33}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:#d9d9d9;cursor:not-allowed;transform:none}.dot-manager{max-width:1600px;width:100%;margin:30px auto;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:25px 20px;box-sizing:border-box}.dot-manager .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;border-bottom:1px solid #f0f0f0;padding-bottom:12px}.dot-layout{display:flex;gap:24px;flex-wrap:wrap}.dot-panel{flex:1 1 480px;background:#f8fafc;border:1px solid #e5eaf2;border-radius:12px;padding:18px;box-sizing:border-box}.dot-panel .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.dot-panel h3{margin-top:0;margin-bottom:12px}.dot-price-indicator{display:inline-flex;align-items:center;gap:8px;background:#ffffff;border:1px solid #d4dbe8;border-radius:999px;padding:4px 12px;font-size:13px;color:#1f2937;white-space:normal;flex-wrap:wrap}.dot-price-indicator .label{font-size:12px;color:#64748b}.dot-price-indicator .value{font-weight:600;font-size:16px;color:#1677ff}.dot-price-indicator .timestamp{font-size:12px;color:#94a3b8}.dot-price-indicator .metric{display:inline-flex;align-items:center;gap:4px;font-size:13px}.dot-price-indicator .metric .label{color:#64748b}.dot-price-indicator .metric .value{font-size:14px}.dot-price-indicator .metric .positive{color:#cf1322}.dot-price-indicator .metric .negative{color:#389e0d}.dot-price-indicator .metric .neutral{color:#1f2937}.dot-price-summary{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}.dot-price-summary__meta{font-size:15px;font-weight:500;color:#1f2937}.dot-table-wrapper.cleared-list{margin-top:18px}.dot-table-wrapper.cleared-list table tbody tr{opacity:.85}.dot-trade-direction{font-weight:600}.dot-trade-direction.buy{color:#d4380d}.dot-trade-direction.sell{color:#1d4ed8}.dot-trade-time{white-space:nowrap;line-height:1.2}.dot-trade-time .date,.dot-trade-time .time{display:block}.dot-cost-chart{margin:12px 0 24px;padding:12px 16px 8px;background:#fff;border:1px solid #e5eaf2;border-radius:12px;position:relative}.dot-cost-chart .chart-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.dot-cost-chart .chart-heading h4{margin:0;font-size:15px}.dot-cost-chart .chart-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:#475569}.dot-cost-chart .chart-legend .legend{display:inline-flex;align-items:center;gap:6px}.dot-cost-chart .chart-legend .legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot-cost-chart .chart-legend .legend.original .dot{background:#94a3b8}.dot-cost-chart .chart-legend .legend.diluted .dot{background:#2563eb}.dot-cost-chart .chart-legend strong{margin-left:4px;color:#1f2937;font-size:14px}.dot-cost-chart .cost-chart-svg{width:100%;height:200px;display:block}.dot-cost-chart .line{fill:none;stroke-width:2}.dot-cost-chart .line.original{stroke:#94a3b8;stroke-dasharray:6 4}.dot-cost-chart .line.diluted{stroke:#2563eb}.dot-cost-chart .point.diluted{fill:#2563eb;stroke:#fff;stroke-width:2}.dot-cost-chart .chart-labels{margin-top:6px;display:flex;justify-content:space-between;font-size:12px;color:#94a3b8}.cost-tooltip{position:absolute;transform:translate(-50%,-110%);background:rgba(15,23,42,.92);color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;min-width:180px;pointer-events:none;box-shadow:0 4px 12px #0f172a40;z-index:2}.cost-tooltip .tooltip-title{font-weight:600;margin-bottom:4px}.cost-tooltip .tooltip-cost{margin-bottom:4px;font-size:13px}.cost-tooltip .tooltip-trades ul{margin:4px 0 0;padding-left:16px}.cost-tooltip .tooltip-trades li{line-height:1.3}.dot-price-indicator .error{font-size:12px;color:#ff4d4f}.dot-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.dot-form .form-row{display:flex;flex-direction:column;gap:6px}.toggle-group{display:flex;gap:8px}.toggle-btn{padding:6px 16px;border-radius:20px;border:1px solid #d0d7e2;background:#fff;color:#4b5563;cursor:pointer;font-size:13px;transition:all .2s ease}.toggle-btn.active{border-color:#1677ff;background:rgba(22,119,255,.12);color:#1677ff;font-weight:600}.toggle-btn:hover{border-color:#1677ff;color:#1677ff}.quick-select{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}.quick-btn{padding:4px 10px;border-radius:6px;border:1px solid #e0e5ee;background:#fff;font-size:12px;color:#4b5563;cursor:pointer;transition:all .2s ease}.quick-btn.active{border-color:#1677ff;background:rgba(22,119,255,.12);color:#1677ff}.quick-btn:hover{border-color:#1677ff;color:#1677ff}.dot-form label{font-size:13px;color:#4b5563}.dot-form input,.dot-form select,.dot-form textarea{border:1px solid #d0d7e2;border-radius:8px;padding:8px 10px;font-size:14px;background:#fff;transition:border .2s ease}.dot-form input:focus,.dot-form select:focus,.dot-form textarea:focus{border-color:#1677ff;outline:none;box-shadow:0 0 0 3px #1677ff1f}.dot-form textarea{resize:vertical}.dot-form .form-actions{display:flex;gap:10px;align-items:center}.dot-form .form-actions button{padding:8px 16px;border-radius:8px;border:1px solid #1677ff;background:#fff;color:#1677ff;cursor:pointer;font-size:14px;transition:all .2s ease}.dot-form .form-actions button.primary{background:#1677ff;color:#fff}.dot-form .form-actions button:hover{filter:brightness(.95)}.dot-table-wrapper{background:#fff;border-radius:10px;padding:12px;border:1px solid #e5eaf2;box-shadow:inset 0 0 0 1px #f3f4f6}.dot-table-wrapper table{width:100%;border-collapse:collapse}.dot-table-wrapper th,.dot-table-wrapper td{padding:10px 8px;border-bottom:1px solid #eef1f6;text-align:left;font-size:13px}.dot-table-wrapper th{background:#f3f6fb;color:#4b5563;font-weight:500}.dot-table-wrapper tr.active{background:rgba(22,119,255,.08)}.dot-table-wrapper tr:hover{background:rgba(22,119,255,.12);cursor:pointer}.dot-table-wrapper td button{border:1px solid transparent;border-radius:6px;padding:4px 10px;background:#f2f5ff;color:#1f3f8c;cursor:pointer;font-size:12px;margin-right:8px;transition:all .2s ease}.dot-table-wrapper td button:hover{background:#dce6ff}.dot-table-wrapper td button.danger{background:#fff1f0;color:#cf1322}.dot-table-wrapper td button.danger:hover{background:#ffdcdc}.dot-table-wrapper td.positive{color:#cf1322}.dot-table-wrapper td.negative{color:#389e0d}.dot-alert{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:13px}.dot-alert.error{background:#fff2f0;border:1px solid #ffa39e;color:#cf1322}.dot-alert.success{background:#f6ffed;border:1px solid #b7eb8f;color:#389e0d}.dot-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;background:#fff;border:1px solid #e5eaf2;border-radius:10px;padding:12px;margin-bottom:18px}.dot-summary-item{display:flex;flex-direction:column}.dot-summary-item .label{color:#6b7280;font-size:12px;margin-bottom:4px}.dot-summary-item .label.label-blue{color:#1677ff}.dot-summary-item .value{font-size:16px;font-weight:600}.dot-summary-item .value.positive{color:#cf1322}.dot-summary-item .value.negative{color:#389e0d}.dot-summary-item .value.blue{color:#1677ff}.table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.today-indicator,.row-today-indicator{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:#cf1322}.position-name-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.position-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.position-name{font-weight:500}.position-sector-row{display:flex;align-items:center}.sector-tag{font-size:10px;padding:1px 4px;border-radius:3px;background:#f0f5ff;color:#1677ff;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}.header-actions{display:inline-flex;align-items:center;gap:12px}.ghost-danger-btn{padding:6px 12px;border-radius:6px;border:1px solid #ffccc7;background:#fff5f5;color:#cf1322;font-size:12px;cursor:pointer;transition:all .2s ease}.ghost-danger-btn:hover:not(:disabled){background:#ffecec}.ghost-danger-btn:disabled{opacity:.6;cursor:not-allowed}.trade-hands{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#475569}.cleared-summary{font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.cleared-summary.positive{color:#cf1322}.cleared-summary.negative{color:#389e0d}.loading{font-size:12px;color:#999}.dot-table-note{margin:8px 2px 0;font-size:12px;color:#6b7280}.dot-empty{color:#6b7280;background:#fff;border-radius:10px;border:1px dashed #d0d7e2;padding:40px 20px;text-align:center}.legend.buy .dot{background:#52c41a}.legend.sell .dot{background:#ff4d4f}.point.buy{fill:#52c41a;stroke:#fff;stroke-width:2;cursor:pointer;transition:r .2s}.point.buy:hover{r:7}.point.sell{fill:#ff4d4f;stroke:#fff;stroke-width:2;cursor:pointer;transition:r .2s}.point.sell:hover{r:7}.trade-points-line{fill:none;stroke:#1677ff;stroke-width:2;vector-effect:non-scaling-stroke}.trade-point-line{stroke:#d0d7e2;stroke-width:1;opacity:.5}@media (max-width: 1024px){.dot-layout{flex-direction:column}}.research-container{max-width:1400px;width:100%;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;display:flex;flex-direction:column;height:calc(100vh - 120px);overflow:hidden}.research-header{padding:20px 24px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.research-header h2{margin:0;font-size:20px;font-weight:600;color:#1a1a1a}.header-actions{display:flex;gap:10px}.research-content{display:flex;flex:1;overflow:hidden}.scenario-sidebar{width:280px;background:#fafafa;border-right:1px solid #f0f0f0;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.scenario-sidebar-title{padding:16px 20px;font-size:14px;font-weight:600;color:#1a1a1a;border-bottom:1px solid #f0f0f0}.scenario-list{padding:12px;display:flex;flex-direction:column;gap:8px}.scenario-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:white;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;transition:all .3s}.scenario-item:hover{border-color:#1677ff;box-shadow:0 2px 8px #1677ff1a}.scenario-item.active{background:#1677ff;border-color:#1677ff;box-shadow:0 2px 8px #1677ff33}.scenario-item.active .scenario-name,.scenario-item.active .scenario-desc{color:#fff}.scenario-icon{font-size:24px;flex-shrink:0}.scenario-info{flex:1;min-width:0}.scenario-name{font-size:14px;font-weight:500;color:#1a1a1a;margin-bottom:2px}.scenario-desc{font-size:12px;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scenario-main{flex:1;display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer}.scenario-edit-btn{width:32px;height:32px;border:none;background:transparent;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s;flex-shrink:0}.scenario-edit-btn:hover{background:rgba(0,0,0,.05)}.scenario-item.active .scenario-edit-btn{color:#fff}.scenario-item.active .scenario-edit-btn:hover{background:rgba(255,255,255,.2)}.custom-badge{display:inline-block;font-size:10px;padding:2px 6px;background:#52c41a;color:#fff;border-radius:4px;margin-left:6px}.scenario-item.active .custom-badge{background:rgba(255,255,255,.3)}.chat-container{display:flex;flex-direction:column;flex:1;overflow:hidden;background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%)}.messages{flex:1;overflow-y:auto;padding:24px 32px;display:flex;flex-direction:column;gap:20px;background:transparent}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.messages::-webkit-scrollbar-thumb:hover{background:#9ca3af}.welcome-message{text-align:left;padding:40px 24px;color:#666;max-width:600px}.welcome-message h3{font-size:22px;margin-bottom:12px;color:#1a1a1a}.welcome-message ul{list-style:none;padding:0;margin:16px 0}.welcome-message li{padding:6px 0;font-size:14px}.welcome-message .welcome-tip{margin-top:20px;padding:12px 16px;background:linear-gradient(135deg,#f0f5ff 0%,#e6f7ff 100%);border-radius:8px;font-size:13px;color:#1677ff}.message{display:flex;gap:14px;animation:fadeIn .3s ease-in;align-items:flex-start}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;background:#f5f5f5;box-shadow:0 2px 8px #0000000f}.message.user .message-avatar{background:linear-gradient(135deg,#1677ff 0%,#4096ff 100%);color:#fff}.message.assistant .message-avatar{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.message-content{flex:1;max-width:80%;min-width:0}.message.user .message-content{display:flex;justify-content:flex-end}.message.assistant .message-content{display:flex;justify-content:flex-start}.message-text{padding:14px 18px;border-radius:16px;line-height:1.7;word-wrap:break-word;text-align:left;box-shadow:0 2px 12px #0000000a}.message.user .message-text{background:linear-gradient(135deg,#1677ff 0%,#4096ff 100%);color:#fff;border-bottom-right-radius:4px}.message.assistant .message-text{background:white;color:#374151;border-bottom-left-radius:4px;border:1px solid #e5e7eb}.message-text code{background:rgba(0,0,0,.05);padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.message.user .message-text code{background:rgba(255,255,255,.2)}.message-text pre{background:#282c34;color:#abb2bf;padding:12px;border-radius:6px;overflow-x:auto;margin:8px 0;font-family:Courier New,monospace;font-size:.9em;line-height:1.5}.message-text pre code{background:none;padding:0;color:inherit}.message-text h1,.message-text h2,.message-text h3{margin:12px 0 8px;font-weight:600;color:#1a1a1a}.message-text h1{font-size:1.5em;border-bottom:2px solid #e8e8e8;padding-bottom:8px}.message-text h2{font-size:1.3em;border-bottom:1px solid #f0f0f0;padding-bottom:6px}.message-text h3{font-size:1.1em}.message.user .message-text h1,.message.user .message-text h2,.message.user .message-text h3{color:#fff;border-color:#ffffff4d}.message-text p{margin:8px 0;line-height:1.6}.message-text ul,.message-text ol{margin:8px 0;padding-left:24px}.message-text li{margin:4px 0;line-height:1.6}.message-text ul{list-style-type:disc}.message-text ol{list-style-type:decimal}.message-text a{color:#1677ff;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}.message-text a:hover{border-bottom-color:#1677ff}.message.user .message-text a{color:#fff;border-bottom-color:#ffffff80}.message.user .message-text a:hover{border-bottom-color:#fff}.typing-indicator{display:flex;gap:4px;padding:12px 16px}.typing-indicator span{width:8px;height:8px;background:#bbb;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.message-text.streaming{position:relative}.message-text.streaming:after{content:"▋";animation:blink 1s infinite;color:#1677ff;margin-left:2px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.message-text.status-message{display:flex;align-items:center;gap:10px;color:#6b7280;font-style:normal;font-weight:500;background:linear-gradient(135deg,#f3e8ff 0%,#e0e7ff 100%);border:1px solid #ddd6fe}.status-icon{animation:pulse 1.5s infinite;font-size:18px}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}}.input-area{display:flex;gap:12px;padding:20px 32px;border-top:1px solid #e5e7eb;background:white;box-shadow:0 -4px 12px #00000005}.input-area textarea{flex:1;padding:14px 18px;border:2px solid #e5e7eb;border-radius:12px;font-size:14px;font-family:inherit;resize:none;min-height:48px;max-height:120px;transition:all .3s ease;background:#f9fafb}.input-area textarea:focus{outline:none;border-color:#1677ff;background:white;box-shadow:0 0 0 3px #1677ff1a}.input-area textarea::placeholder{color:#9ca3af}.send-button{padding:0 28px;height:48px;background:linear-gradient(135deg,#1677ff 0%,#4096ff 100%);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #1677ff4d}.send-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #1677ff66}.send-button:active:not(:disabled){transform:translateY(0)}.send-button:disabled{background:#d1d5db;cursor:not-allowed;box-shadow:none}.btn-primary,.btn-secondary{padding:8px 16px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s}.form-group textarea,.form-group input[type=range]{width:100%;padding:10px 12px;border:1px solid #d9d9d9;border-radius:6px;font-family:inherit;font-size:14px}.form-group textarea{resize:vertical;min-height:150px;font-family:Courier New,monospace}.hint{margin-top:8px;font-size:12px;color:#999}.price-alert-container{max-width:1200px;width:100%;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 12px #00000014;padding:24px;min-height:calc(100vh - 120px)}.price-alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.price-alert-header h2{margin:0;font-size:20px;font-weight:600;color:#1a1a1a}.price-alert-content{flex:1}.loading,.empty-state{text-align:center;padding:60px 20px;color:#999}.empty-state p{margin:8px 0}.alert-list{display:flex;flex-direction:column;gap:16px}.alert-item{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;transition:all .3s}.alert-item:hover{box-shadow:0 2px 8px #00000014;border-color:#d9d9d9}.alert-item.inactive{opacity:.6}.alert-main{flex:1}.alert-stock{display:flex;align-items:center;gap:12px;margin-bottom:12px}.stock-code{font-size:18px;font-weight:600;color:#1677ff}.stock-name{font-size:14px;color:#666}.alert-prices{display:flex;gap:24px;margin-bottom:8px}.price-item{display:flex;align-items:center;gap:8px}.price-label{font-size:13px;color:#666}.price-value{font-size:16px;font-weight:600}.price-item.buy .price-value{color:#52c41a}.price-item.sell .price-value{color:#ff4d4f}.alert-remark{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#666;margin-top:10px;padding:6px 12px;background:linear-gradient(135deg,#f0f7ff 0%,#e6f4ff 100%);border:1px solid #d6e4ff;border-radius:16px;max-width:100%}.alert-remark:before{content:"📝";font-size:12px}.alert-remark-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.current-price{font-size:13px;color:#1677ff;margin-top:8px;font-weight:500}.alert-actions{display:flex;gap:8px;flex-shrink:0}.btn-toggle,.btn-edit,.btn-delete{padding:8px 16px;border:1px solid #d9d9d9;background:white;border-radius:6px;font-size:13px;color:#666;cursor:pointer;transition:all .3s}.btn-toggle:hover{border-color:#1677ff;color:#1677ff}.btn-edit:hover{border-color:#faad14;color:#faad14}.btn-delete:hover{border-color:#ff4d4f;color:#ff4d4f}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:white;border-radius:12px;width:90%;max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:20px 24px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:18px;font-weight:600}.close-button{background:none;border:none;font-size:20px;cursor:pointer;color:#999;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .3s}.close-button:hover{background:#f5f5f5;color:#666}.modal-body{padding:24px;overflow-y:auto}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#1a1a1a}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .3s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#1677ff}.form-group textarea{resize:vertical;font-family:inherit}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.modal-footer{padding:16px 24px;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;gap:12px}.btn-primary,.btn-secondary{padding:8px 20px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s}.btn-primary{background:#1677ff;color:#fff}.btn-primary:hover{background:#4096ff}.btn-secondary{background:#f5f5f5;color:#666}.btn-secondary:hover{background:#e8e8e8}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:white;padding:20px;border-radius:8px;width:400px;max-height:80vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h3{margin:0}.close-btn{background:none;border:none;cursor:pointer;font-size:18px;color:#666}.modal-body{overflow-y:auto;flex:1}.stock-list{display:flex;flex-direction:column;gap:12px}.stock-item{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #f0f0f0}.stock-info small{color:#999;margin-left:8px}.switch{position:relative;display:inline-block;width:40px;height:20px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s}.slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{transform:translate(20px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.realtime-trend-container{padding:24px;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;font-family:system-ui,-apple-system,sans-serif}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;border-bottom:1px solid #f0f0f0;padding-bottom:16px}.header h2{margin:0;font-size:20px;color:#1f2937;display:flex;align-items:center;gap:8px}.controls{display:flex;align-items:center;gap:16px}.last-update{font-size:14px;color:#6b7280}.auto-refresh-label{display:flex;align-items:center;gap:6px;font-size:14px;color:#4b5563;cursor:pointer;-webkit-user-select:none;user-select:none}.refresh-btn{background-color:#3b82f6;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background-color .2s}.refresh-btn:hover:not(:disabled){background-color:#2563eb}.refresh-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table-wrapper{overflow-x:auto}.trend-table{width:100%;border-collapse:collapse;font-size:14px}.trend-table th,.trend-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.trend-table th{background-color:#f9fafb;color:#6b7280;font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.05em;position:relative}.trend-table tr:hover{background-color:#f3f4f6}.tooltip-container{display:inline-block;margin-left:6px;vertical-align:middle;position:relative;cursor:help}.tooltip-icon{color:#9ca3af;font-size:14px}.tooltip-text{visibility:hidden;width:200px;background-color:#374151;color:#fff;text-align:left;border-radius:6px;padding:8px 12px;position:absolute;z-index:1000;top:120%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .3s;font-weight:400;font-size:12px;line-height:1.5;box-shadow:0 4px 6px #0000001a;text-transform:none}.tooltip-text:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #374151 transparent}.tooltip-container:hover .tooltip-text{visibility:visible;opacity:1}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:9999px;font-size:12px;font-weight:500}.tag.red{background-color:#fee2e2;color:#991b1b}.tag.green{background-color:#d1fae5;color:#065f46}.tag.gray{background-color:#f3f4f6;color:#374151}.badge{display:inline-block;padding:4px 10px;border-radius:6px;font-weight:600;font-size:12px;text-align:center;min-width:60px}.badge.success{background-color:#10b981;color:#fff}.badge.error{background-color:#ef4444;color:#fff}.badge.default{background-color:#e5e7eb;color:#374151}.message-banner{margin-bottom:16px;padding:12px;border-radius:6px;font-size:14px;display:flex;align-items:center}.message-banner.success{background-color:#dcfce7;color:#166534;border:1px solid #bbf7d0}.message-banner.error{background-color:#fee2e2;color:#991b1b;border:1px solid #fecaca}.stats-banner{margin-bottom:12px;padding:8px 12px;background-color:#f8fafc;border-radius:6px;font-size:12px;color:#64748b;display:flex;gap:12px;align-items:center}.exclude-btn{background-color:transparent;color:#ef4444;border:1px solid #ef4444;padding:4px 8px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.exclude-btn:hover{background-color:#ef4444;color:#fff}body,#root{min-height:100vh;height:auto;overflow-y:auto}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html,#root{min-height:100vh;overflow-y:auto}.background-overlay{min-height:100vh;width:100%;max-width:1200px;padding:60px 20px 20px;margin:0 auto;position:relative;overflow-y:visible}.dashboard,.event-manager,.stock-manager,.coin-manager{min-height:auto;height:auto;overflow:visible}
