:root{--color-primary:#0f6bdd;--color-primary-hover:#79b5ff;--color-primary-click:#367fd9;--color-primary-light:#ecf4ff;--color-primary-weak:#9fcaff;--color-nav-bg:#014298;--color-red:#e11a1a;--color-red-light:#ff8893;--color-green:#1fc16b;--color-green-light:#90d2af;--color-orange:#f9a705;--color-orange-light:#ffd490;--color-border:#ebebeb;--color-bg:#f5f5f5;--color-bg-white:#fff;--color-text:#333;--color-text-light:#666;--color-text-muted:#999;--sidebar-width:172px;--topnav-height:48px}*{box-sizing:border-box;margin:0;padding:0}body{color:#333;padding-bottom:env(safe-area-inset-bottom);background:#f5f5f5;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;overflow-x:hidden}a{color:inherit;text-decoration:none}.layout{min-height:100vh;padding-top:48px;display:flex}.content{flex:1;min-width:0;margin-left:172px}.page-header{background:#fff;border-bottom:1px solid #ebebeb;padding:16px 24px}.breadcrumb{color:#999;margin-bottom:4px;font-size:12px}.page-title{color:#333;font-size:20px;font-weight:600}.main-content{padding:16px 24px 40px}.section{background:#fff;border-radius:4px;margin-bottom:16px;padding:16px}.section-title{color:#333;border-left:3px solid #0f6bdd;margin-bottom:16px;padding-left:10px;font-size:14px;font-weight:600}@media (width<=1024px){.content{margin-left:0!important}.main-content{padding:16px 16px 32px}.page-header{padding:14px 16px}}@media (width<=480px){.main-content{padding:12px 12px 32px}.page-header{padding:12px}.page-title{font-size:16px}.section{padding:12px}}.top-nav{z-index:100;background:#014298;align-items:center;height:48px;padding:0 4px;display:flex;position:fixed;top:0;left:0;right:0}.top-nav .logo-wrap{align-items:center;height:36px;display:flex}.top-nav .logo-icon{flex-shrink:0}.top-nav .logo-icon img{height:36px;display:block}.top-nav .logo-text{color:#fff;letter-spacing:.5px;white-space:nowrap;font-size:14px;font-weight:500}.top-nav .nav-switcher{background:#ffffff1a;border-radius:4px;gap:2px;margin-left:auto;margin-right:16px;padding:2px;display:flex}.top-nav .nav-switcher a{color:#ffffffb3;white-space:nowrap;border-radius:3px;padding:5px 16px;font-size:13px;transition:all .2s}.top-nav .nav-switcher a:hover{color:#fff;background:#ffffff1a}.top-nav .nav-switcher a.active{color:#014298;background:#fff;font-weight:500}.sidebar{background:#fff;border-right:1px solid #ebebeb;width:172px;position:fixed;top:48px;bottom:0;left:0;overflow-y:auto}.sidebar-title{color:#999;padding:16px 20px 10px;font-size:12px}.sidebar-item{cursor:pointer;color:#666;align-items:center;height:52px;padding:0 20px;font-size:14px;display:flex;position:relative}.sidebar-item:hover{background:#f5f7fa}.sidebar-item.active{color:#0f6bdd;background:#fff;font-weight:500}.sidebar-item.active:before{content:"";background:#0f6bdd;border-radius:0 2px 2px 0;width:3px;height:36px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-item .nav-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-right:8px;display:flex}.sidebar-item .nav-icon img{opacity:.45;width:18px;height:18px}.sidebar-item:hover .nav-icon img{opacity:.65}.sidebar-item.active .nav-icon img{opacity:1;filter:brightness(0)saturate()invert(35%)sepia(85%)saturate(1500%)hue-rotate(200deg)brightness(95%)}.sidebar-item .nav-icon .icon-active{display:none}.sidebar-item .nav-icon .icon-default,.sidebar-item.active .nav-icon .icon-active{display:block}.sidebar-item.active .nav-icon .icon-default{display:none}.sidebar-item .nav-label{flex:1}.sidebar-item .arrow{color:#ccc;margin-left:auto;font-size:14px}.sidebar-item .nav-icon-text{color:#999;background:#f0f2f5;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-right:8px;font-size:12px;font-weight:700;display:flex}.sidebar-item.active .nav-icon-text{color:#0f6bdd;background:#e8f0fe}.mobile-menu-btn{color:#fff;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 10px;font-size:22px;display:none}.sidebar-overlay{display:none}@media (width<=1024px){.mobile-menu-btn{display:block}.top-nav .logo-icon img{height:28px}.top-nav .nav-switcher{gap:0;margin-right:8px}.top-nav .nav-switcher a{padding:4px 8px;font-size:11px}.sidebar{z-index:150;transition:transform .25s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:140;background:#00000059;display:block;position:fixed;inset:48px 0 0}}.status-bar{background:#fff;border-bottom:1px solid #ebebeb;gap:0;padding:10px 24px;display:flex}.status-item{flex:1;max-width:240px;padding:0 20px;position:relative}.status-item:first-child{padding-left:0}.status-item:not(:last-child):after{content:"";background:#ebebeb;width:1px;height:24px;position:absolute;top:50%;right:0;transform:translateY(-50%)}.status-item .label{color:#999;margin-bottom:2px;font-size:12px}.status-item .value{color:#333;font-size:14px;font-weight:600}.status-item .value.red{color:#e11a1a}.status-item .value.green{color:#1fc16b}.status-item .value.blue{color:#0f6bdd}.status-item .value.orange{color:#f9a705}.tab-nav{z-index:50;background:#fff;border-bottom:1px solid #ebebeb;gap:28px;padding:0 24px;display:flex;position:sticky;top:48px}.tab-item{color:#666;cursor:pointer;white-space:nowrap;padding:12px 0;font-size:14px;position:relative}.tab-item:hover{color:#0f6bdd}.tab-item.active{color:#0f6bdd;font-weight:500}.tab-item.active:after{content:"";background:#0f6bdd;height:2px;position:absolute;bottom:0;left:0;right:0}a.tab-item{display:inline-block}.table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;width:100%;position:relative;overflow-x:auto}.table-scroll-hint{color:#999;text-align:center;padding:4px 12px;font-size:11px;display:none}.data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:640px;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:12px}.data-table th{text-align:left;color:#333;white-space:nowrap;background:#f5fafe;border-bottom:1px solid #ebebeb;height:38px;padding:0 24px;font-weight:500;line-height:18px}.data-table td{color:#333;background:#fff;border-bottom:1px solid #ebebeb;height:42px;padding:0 24px;font-weight:400;line-height:18px}.data-table tr:hover td{background:#f5fafe}.data-table td a,.data-table td .op-link{color:#0f6bdd;cursor:pointer}.data-table td a:hover,.data-table td .op-link:hover{text-decoration:underline}.data-table th:first-child,.data-table td:first-child{z-index:2;position:sticky;left:0}.data-table th:first-child{z-index:3;background:#f5fafe}.data-table tr:hover td:first-child{background:#f5fafe}.table-wrap .data-table th:first-child,.table-wrap .data-table td:first-child{box-shadow:2px 0 4px -1px #0000000f}.data-table td.green-bg{background:#dffaeb}.data-table td.red-bg{background:#ffe5e5}.data-table td.orange-bg{background:#fff5e0}.info-cards{flex-wrap:wrap;gap:16px;display:flex}.info-card{border:1px solid #ebebeb;border-radius:4px;flex:1;min-width:180px;padding:12px 16px;position:relative;overflow:hidden}.info-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.info-card.blue:before{background:#0f6bdd}.info-card.orange:before{background:#f9a705}.info-card.red:before{background:#e11a1a}.info-card.green:before{background:#1fc16b}.info-card .card-title{color:#666;margin-bottom:4px;font-size:13px}.info-card .card-value{margin-bottom:4px;font-size:22px;font-weight:700}.info-card .card-value.red{color:#e11a1a}.info-card .card-value.orange{color:#f9a705}.info-card .card-value.green{color:#1fc16b}.info-card .card-value.blue{color:#0f6bdd}.info-card .card-desc{color:#999;margin-bottom:8px;font-size:12px}.info-card .card-btn{color:#fff;cursor:pointer;background:#0f6bdd;border-radius:2px;padding:4px 12px;font-size:12px;display:inline-block}.highlight-box{background:#f0f7ff;border-radius:4px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.highlight-box.green{background:#f0faf4}.highlight-box.orange{background:#fff8ed}.highlight-box.yellow{background:#fffbe6}.highlight-badge{color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:40px;margin-right:16px;font-size:16px;font-weight:700;display:flex}.highlight-badge.blue{background:#0f6bdd}.highlight-badge.green{background:#1fc16b}.highlight-badge.orange{background:#f9a705}.highlight-info{flex:1;min-width:200px}.highlight-info .title{margin-bottom:4px;font-size:14px;font-weight:600}.highlight-info .desc{color:#666;font-size:13px}.highlight-tip{color:#856404;background:#fff3cd;border-radius:4px;max-width:300px;margin-left:auto;padding:8px 12px;font-size:12px}.highlight-tip.red{color:#c0392b;background:#ffe5e5}.two-col{gap:16px;display:flex}.two-col .col{border:1px solid #ebebeb;border-radius:4px;flex:1;padding:12px 16px}.two-col .col-title{margin-bottom:8px;font-size:14px;font-weight:600}.two-col .col p{color:#555;font-size:13px;line-height:2}.status-tags{flex-wrap:wrap;gap:12px;display:flex}.status-tag{border:1px solid #ebebeb;border-radius:4px;flex:1;min-width:140px;padding:12px 16px}.status-tag .tag-label{border-radius:2px;margin-bottom:6px;padding:2px 8px;font-size:12px;display:inline-block}.status-tag .tag-label.gray{color:#666;background:#f0f2f5}.status-tag .tag-label.orange{color:#e67e22;background:#fff3cd}.status-tag .tag-label.green{color:#1fc16b;background:#dffaeb}.status-tag .tag-label.red{color:#e11a1a;background:#ffe5e5}.status-tag .tag-label.blue{color:#0f6bdd;background:#ecf4ff}.status-tag .tag-desc{color:#999;font-size:12px}.note{color:#999;margin-top:8px;font-size:12px}.market-cards{background:#fff;gap:16px;padding:16px 24px;display:flex}.market-card{background:#fafbfc;border:none;border-radius:4px;flex:1;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:relative;overflow:hidden}.market-card:before{content:"";height:3px;position:absolute;top:0;left:0;right:0}.market-card.red:before{background:#e11a1a}.market-card.green:before{background:#1fc16b}.market-card.orange:before{background:#f9a705}.market-card .mc-name{font-size:14px;font-weight:600}.market-card .mc-desc{color:#999;margin-top:2px;font-size:12px}.market-card .mc-btn{color:#e11a1a;cursor:pointer;border:1px solid #e11a1a;border-radius:2px;padding:2px 8px;font-size:12px}.market-card.green .mc-btn{color:#1fc16b;border-color:#1fc16b}.market-card.orange .mc-btn{color:#f9a705;border-color:#f9a705}.three-col-cards{flex-wrap:wrap;gap:16px;display:flex}.three-col-card{border:1px solid #ebebeb;border-left:3px solid #0f6bdd;border-radius:4px;flex:1;min-width:200px;padding:12px 16px}.three-col-card.orange{border-left-color:#f9a705}.three-col-card.red{border-left-color:#e11a1a}.three-col-card.green{border-left-color:#1fc16b}.three-col-card .tcc-title{margin-bottom:6px;font-size:14px;font-weight:600}.three-col-card .tcc-desc{color:#666;font-size:12px;line-height:1.6}.action-bar{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.action-bar .label{color:#666;font-size:14px}.action-bar .btns{gap:8px;display:flex}.action-bar .btn{color:#fff;cursor:pointer;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:500;display:inline-block}.action-bar .btn.red{background:#e11a1a}.action-bar .btn.green{background:#1fc16b}.action-bar .btn.orange{background:#f9a705}.action-bar .btn.blue{background:#0f6bdd}.data-table th.a-stock{color:#e11a1a;background:#ffe5e5}.data-table th.etf{color:#1fc16b;background:#e3fae9}.data-table th.hk{color:#f9a705;background:#fff5e0}.note-section{background:#fffbe6;border:1px solid #ffe58f;border-left:3px solid #0f6bdd;border-radius:4px;margin-bottom:16px;padding:12px 16px}.note-section .note-title{margin-bottom:6px;font-size:14px;font-weight:600}.note-section p{color:#555;font-size:13px;line-height:1.8}.priority-badge{color:#fff;white-space:nowrap;border-radius:2px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.priority-badge.p0{background:#e11a1a}.priority-badge.p1{background:#f9a705}.priority-badge.p2{background:#95a5a6}.section[id],.highlight-box[id],.note-section[id],.market-cards[id]{scroll-margin-top:106px}.form-group{margin-bottom:12px}.form-label{color:#666;margin-bottom:4px;font-size:12px;display:block}.form-label .required{color:#e11a1a}.form-label .hint{color:#aaa;font-size:11px}.form-input{box-sizing:border-box;border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.form-input:focus{border-color:#0f6bdd;outline:none}.form-select{border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.form-row{align-items:center;gap:8px;display:flex}.form-unit{color:#999;white-space:nowrap;font-size:12px}.form-hint{color:#999;margin-top:4px;font-size:11px}.form-hint .limit-up{color:#e11a1a}.form-hint .limit-down{color:#1fc16b}.toggle-group{border:1px solid #ebebeb;border-radius:4px;margin-bottom:16px;display:flex;overflow:hidden}.toggle-btn{text-align:center;cursor:pointer;color:#666;background:#fff;border:none;flex:1;padding:8px;font-family:inherit;font-size:13px}.toggle-btn.active-blue{color:#fff;background:#0f6bdd;font-weight:500}.toggle-btn.active-red{color:#fff;background:#e11a1a;font-weight:500}.fee-box{background:#f8f9fa;border-radius:4px;margin-bottom:14px;padding:10px 12px;font-size:12px}.fee-row{justify-content:space-between;margin-bottom:4px;display:flex}.fee-row .fee-label{color:#666}.fee-row.total{border-top:1px solid #ebebeb;margin-top:4px;margin-bottom:0;padding-top:4px}.fee-row.total .fee-label{color:#333;font-weight:500}.fee-row.total .fee-value{font-weight:700}.btn-submit{cursor:pointer;color:#fff;border:none;border-radius:4px;width:100%;padding:12px;font-family:inherit;font-size:15px;font-weight:600}.btn-submit.blue{background:#0f6bdd}.btn-submit.red{background:#e11a1a}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.btn-submit.loading{color:#0000;position:relative}.btn-submit.loading:after{content:"";border:2px solid #fff;border-top-color:#0000;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;animation:.6s linear infinite spin;position:absolute;top:50%;left:50%}@keyframes spin{to{transform:rotate(360deg)}}.btn-quick{cursor:pointer;border:none;border-radius:2px;padding:3px 10px;font-family:inherit;font-size:12px;display:inline-block}.btn-quick.outline-blue{color:#0f6bdd;background:#fff;border:1px solid #0f6bdd}.btn-quick.outline-red{color:#e11a1a;background:#fff;border:1px solid #e11a1a}.asset-tag{border-radius:2px;padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.asset-tag.a-stock{color:#e11a1a;background:#ffe5e5}.asset-tag.etf{color:#1fc16b;background:#e3fae9}.asset-tag.hk{color:#f9a705;background:#fff5e0}.order-status{border-radius:2px;padding:1px 6px;font-size:11px;display:inline-block}.order-status.pending{color:#999;background:#f0f2f5}.order-status.reported{color:#0f6bdd;background:#ecf4ff}.order-status.partial{color:#e67e22;background:#fff3cd}.order-status.filled{color:#1fc16b;background:#dffaeb}.order-status.cancelled{color:#e11a1a;background:#ffe5e5}.order-status.rejected{color:#999;background:#f0f2f5}.flow-tag{border-radius:2px;padding:1px 6px;font-size:11px;display:inline-block}.flow-tag.buy{color:#0f6bdd;background:#ecf4ff}.flow-tag.sell{color:#e11a1a;background:#ffe5e5}.flow-tag.cancel-refund{color:#e67e22;background:#fff3cd}.flow-tag.fee{color:#e11a1a;background:#ffe5e5}.flow-tag.deposit{color:#1fc16b;background:#dffaeb}.info-bar{border-bottom:1px solid #ebebeb;align-items:center;gap:24px;padding:8px 24px;font-size:12px;display:flex}.info-bar.blue{background:#f0f7ff}.info-bar.pink{background:#fdf2f0}.info-bar .bar-value{font-weight:600}.info-bar .bar-refresh{color:#999;margin-left:auto}.validation-panel{font-size:12px;line-height:2.4}.validation-panel .v-item{align-items:baseline;gap:4px;display:flex}.validation-panel .v-pass{color:#1fc16b}.validation-panel .v-fail{color:#e11a1a}.validation-panel .v-hint{color:#999;margin-left:4px;font-size:11px}.sellable-box{background:#f0f7ff;border:1px solid #d6e4f0;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 12px;display:flex}.sellable-box.hk{background:#fff8ed;border-color:#ffe0b2}.sellable-box .qty{color:#0f6bdd;font-size:18px;font-weight:700}.sellable-box.hk .qty{color:#f9a705}.sellable-box .qty-unit{color:#666;font-size:12px;font-weight:400}.sellable-box .qty-rule{text-align:right;color:#999;font-size:11px;line-height:1.8}.pos-select{border:1px solid #ebebeb;border-radius:4px;margin-bottom:12px;overflow:hidden}.pos-select-header{color:#666;background:#f0f2f5;justify-content:space-between;padding:6px 10px;font-size:11px;display:flex}.pos-select-item{cursor:pointer;border-bottom:1px solid #f0f2f5;justify-content:space-between;padding:6px 10px;font-size:12px;display:flex}.pos-select-item:last-child{border-bottom:none}.pos-select-item:hover{background:#f5f7fa}.pos-select-item.selected{background:#ecf4ff}.filter-bar{background:#fff;border:1px solid #ebebeb;border-radius:4px;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;padding:14px 16px;display:flex}.filter-group label{color:#999;margin-bottom:2px;font-size:11px;display:block}.filter-group input,.filter-group select{border:1px solid #ddd;border-radius:2px;padding:4px 8px;font-size:12px}.filter-actions{gap:8px;margin-left:auto;display:flex}.filter-btn{cursor:pointer;border:none;border-radius:2px;padding:5px 14px;font-family:inherit;font-size:12px}.filter-btn.primary{color:#fff;background:#0f6bdd}.filter-btn.default{color:#666;background:#f0f2f5}.filter-btn.outline{color:#0f6bdd;background:#fff;border:1px solid #0f6bdd}.date-range-btns{align-items:center;gap:4px;display:flex}.date-range-btns .dr-btn{cursor:pointer;color:#666;background:#f0f2f5;border:none;border-radius:2px;padding:4px 10px;font-family:inherit;font-size:12px}.date-range-btns .dr-btn.active{color:#fff;background:#0f6bdd}.date-range-btns input[type=text]{width:90px}.batch-toolbar{background:#fff;border:1px solid #ebebeb;border-bottom:none;border-radius:4px 4px 0 0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.batch-toolbar .batch-left{align-items:center;gap:12px;font-size:12px;display:flex}.batch-toolbar .batch-right{color:#999;font-size:12px}.btn-batch-cancel{color:#fff;cursor:pointer;background:#e11a1a;border:none;border-radius:2px;padding:4px 12px;font-family:inherit;font-size:12px}.btn-batch-cancel:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.show{display:flex}.modal-box{background:#fff;border-radius:8px;min-width:400px;max-width:520px;padding:24px;box-shadow:0 4px 24px #00000026}.modal-box.border-red{border:2px solid #e11a1a}.modal-box.border-orange{border:2px solid #f9a705}.modal-title{text-align:center;margin-bottom:16px;font-size:16px;font-weight:600}.modal-title.red{color:#e11a1a}.modal-title.orange{color:#f9a705}.modal-info{background:#f8f9fa;border-radius:4px;margin-bottom:12px;padding:10px 12px;font-size:12px;line-height:2}.modal-info .info-row{justify-content:space-between;display:flex}.modal-actions{justify-content:center;gap:8px;margin-top:16px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:4px;padding:8px 32px;font-family:inherit;font-size:13px}.modal-btn.cancel{color:#666;background:#f0f2f5}.modal-btn.confirm-red{color:#fff;background:#e11a1a}.modal-btn.confirm-orange{color:#fff;background:#f9a705}.modal-btn.confirm-blue{color:#fff;background:#0f6bdd}.toast{color:#fff;z-index:300;opacity:0;border-radius:4px;padding:12px 20px;font-size:13px;transition:all .3s;position:fixed;top:60px;right:24px;transform:translate(100%)}.toast.show{opacity:1;transform:translate(0)}.toast.success{background:#1fc16b}.toast.error{background:#e11a1a}.toast.warning{background:#f9a705}.toast.info{background:#0f6bdd}.warning-inline{color:#e65100;background:#fff5e0;border:1px solid #ffe0b2;border-radius:4px;margin-top:4px;padding:6px 10px;font-size:11px}.fee-note{background:#fffbe6;border:1px solid #ffe58f;border-radius:4px;padding:10px 14px;font-size:12px;line-height:1.8}.quote-card{text-align:center;margin-bottom:12px}.quote-card .quote-name{color:#999;font-size:11px}.quote-card .quote-price{margin:4px 0;font-size:28px;font-weight:700}.quote-card .quote-change{font-size:13px}.quote-grid{border-top:1px solid #f0f2f5;gap:0;padding-top:8px;font-size:12px;display:flex}.quote-grid .qg-item{text-align:center;flex:1}.quote-grid .qg-item:not(:last-child){border-right:1px solid #f0f2f5}.quote-grid .qg-label{color:#999}.quote-grid .qg-value{font-weight:500}.exchange-rate{background:#fff8ed;border:1px solid #ffe0b2;border-radius:4px;margin-top:8px;padding:6px 10px;font-size:12px}.preorder-card{border:1px solid #ebebeb;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:10px;display:flex}.preorder-card .po-info .po-name{font-weight:500}.preorder-card .po-info .po-detail{color:#999;margin-top:2px;font-size:11px}.preorder-card .po-actions{align-items:center;gap:8px;display:flex}.activity-item{border-bottom:1px solid #f0f2f5;padding:8px 0}.activity-item:last-child{border-bottom:none}.activity-row{justify-content:space-between;font-size:12px;display:flex}.activity-detail{color:#999;margin-top:2px;font-size:11px}.quick-actions{gap:10px;display:flex}.quick-action-btn{text-align:center;cursor:pointer;border-radius:4px;flex:1;padding:14px}.quick-action-btn .qa-icon{font-size:20px}.quick-action-btn .qa-label{margin-top:4px;font-size:13px;font-weight:500}.quick-action-btn.buy{background:#ecf4ff}.quick-action-btn.buy .qa-label{color:#0f6bdd}.quick-action-btn.sell{background:#ffe5e5}.quick-action-btn.sell .qa-label{color:#e11a1a}.quick-action-btn.query{background:#f0f2f5}.quick-action-btn.query .qa-label{color:#666}.trade-layout{gap:16px;padding:16px 24px;display:flex}.trade-form{flex:1;max-width:480px}.trade-aside{flex:1}.agg-panel{gap:12px;margin-bottom:16px;display:flex}.agg-card{background:#f8f9fa;border:1px solid #ebebeb;border-radius:4px;flex:1;padding:12px}.agg-card .agg-title{margin-bottom:8px;font-size:12px;font-weight:600}.empty-state{text-align:center;color:#999;padding:40px 20px}.empty-state .empty-text{margin-bottom:12px;font-size:14px}.empty-state .empty-btn{color:#fff;cursor:pointer;background:#0f6bdd;border-radius:4px;padding:8px 20px;font-size:13px;text-decoration:none;display:inline-block}.cancel-result{border-radius:4px;align-items:flex-start;gap:8px;margin-bottom:8px;padding:8px 12px;font-size:12px;display:flex}.cancel-result.success{background:#dffaeb}.cancel-result.fail{background:#ffe5e5}.cancel-result .cr-icon{flex-shrink:0;font-size:16px}.cancel-result .cr-title{font-weight:500}.cancel-result .cr-detail{color:#666;font-size:11px}.step-indicator{align-items:center;margin-bottom:8px;padding:16px 0;display:flex}.step-item{flex-direction:column;align-items:center;display:flex;position:relative}.step-num{color:#999;background:#fff;border:2px solid #ebebeb;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:flex}.step-num.active{color:#fff;background:#0f6bdd;border-color:#0f6bdd}.step-num.done{color:#fff;background:#1fc16b;border-color:#1fc16b}.step-num.pending{color:#999;background:#f0f2f5;border-color:#ebebeb}.step-label{color:#999;white-space:nowrap;margin-top:4px;font-size:11px}.step-item.active .step-label{color:#0f6bdd;font-weight:500}.step-item.done .step-label{color:#1fc16b}.step-line{background:#ebebeb;flex:1;height:2px;margin:0 4px 16px}.step-line.done{background:#1fc16b}.toggle-switch{cursor:pointer;background:#ebebeb;border-radius:11px;align-items:center;width:40px;height:22px;transition:background .2s;display:inline-flex;position:relative}.toggle-switch.on{background:#0f6bdd}.toggle-switch.off{background:#ebebeb}.toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle-switch.on .toggle-knob{left:20px}.pill-group{flex-wrap:wrap;gap:6px;display:flex}.pill-tag{color:#666;cursor:pointer;background:#f0f2f5;border:1px solid #ebebeb;border-radius:12px;align-items:center;padding:4px 12px;font-size:12px;transition:all .2s;display:inline-flex}.pill-tag:hover{color:#0f6bdd;border-color:#0f6bdd}.pill-tag.selected{color:#0f6bdd;background:#ecf4ff;border-color:#0f6bdd;font-weight:500}.risk-group{gap:8px;display:flex}.risk-btn{text-align:center;cursor:pointer;background:#fff;border:1px solid #ebebeb;border-radius:4px;flex:1;padding:10px 8px;transition:all .2s}.risk-btn:hover{border-color:#0f6bdd}.risk-btn.active{background:#ecf4ff;border-color:#0f6bdd}.risk-label{color:#333;font-size:13px;font-weight:500}.risk-btn.active .risk-label{color:#0f6bdd}.risk-desc{color:#999;margin-top:2px;font-size:11px}.portfolio-type-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.portfolio-type-tag.aggressive{color:#e11a1a;background:#ffe5e5}.portfolio-type-tag.balanced{color:#0f6bdd;background:#ecf4ff}.portfolio-type-tag.conservative{color:#666;background:#f0f2f5}.portfolio-type-tag.index-enhanced{color:#f9a705;background:#fff5e0}.portfolio-status{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.portfolio-status.draft{color:#999;background:#f0f2f5}.portfolio-status.reviewing{color:#f9a705;background:#fff5e0}.portfolio-status.live{color:#1fc16b;background:#dffaeb}.portfolio-status.offline{color:#666;background:#f0f2f5}.portfolio-status.liquidated{color:#e11a1a;background:#ffe5e5}.report-type-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.report-type-tag.stock-pick{color:#e11a1a;background:#ffe5e5}.report-type-tag.holding{color:#0f6bdd;background:#ecf4ff}.report-type-tag.market-note{color:#666;background:#f0f2f5}.report-status{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.report-status.draft{color:#999;background:#f0f2f5}.report-status.pending{color:#f9a705;background:#fff5e0}.report-status.approved{color:#1fc16b;background:#dffaeb}.report-status.published{color:#0f6bdd;background:#ecf4ff}.report-status.rejected{color:#e11a1a;background:#ffe5e5}.chart-container{width:100%}.chart-grid{flex-wrap:wrap;gap:16px;display:flex}.chart-card{background:#fff;border:1px solid #ebebeb;border-radius:4px;flex:1;min-width:360px;padding:16px}.risk-card{background:#fff;border:1px solid #ebebeb;border-radius:4px;padding:14px 16px}.risk-value{margin:4px 0;font-size:22px;font-weight:700}.risk-bar{background:#f0f2f5;border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.risk-bar-fill{border-radius:3px;height:100%;transition:width .4s}.risk-bar-fill.normal{background:#1fc16b}.risk-bar-fill.warning{background:#f9a705}.risk-bar-fill.danger{background:#e11a1a}.perf-cards{flex-wrap:wrap;gap:12px;display:flex}.perf-card{background:#f8f9fa;border-radius:4px;flex:1;min-width:120px;padding:12px 14px}.perf-card.bordered{background:#fff;border:1px solid #ebebeb}.perf-label{color:#999;font-size:11px}.perf-value{margin:4px 0 2px;font-size:18px;font-weight:700}.perf-sub{color:#999;font-size:11px}.danger-zone{background:#ffe5e5;border:1px solid #f5c6cb;border-radius:4px;padding:14px 16px}.danger-zone .danger-title{color:#e11a1a;margin-bottom:6px;font-size:13px;font-weight:600}.danger-zone .danger-desc{color:#c0392b;font-size:12px;line-height:1.6}.upload-area{text-align:center;cursor:pointer;color:#999;border:2px dashed #ebebeb;border-radius:6px;padding:28px;font-size:13px;transition:border-color .2s,background .2s}.upload-area:hover{color:#0f6bdd;background:#ecf4ff;border-color:#0f6bdd}.uploaded-file{background:#f8f9fa;border:1px solid #ebebeb;border-radius:4px;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;font-size:12px;display:flex}.uploaded-file .uf-name{color:#333;flex:1}.uploaded-file .uf-remove{color:#999;cursor:pointer;flex-shrink:0;font-size:14px}.uploaded-file .uf-remove:hover{color:#e11a1a}.rte-toolbar{background:#f8f9fa;border:1px solid #ebebeb;border-bottom:none;border-radius:4px 4px 0 0;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;display:flex}.rte-toolbar button{cursor:pointer;color:#666;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;transition:background .15s;display:flex}.rte-toolbar button:hover{color:#333;background:#ebebeb}.rte-toolbar .rte-divider{background:#ebebeb;width:1px;height:18px;margin:0 4px}.rte-body{background:#fff;border:1px solid #ebebeb;border-radius:0 0 4px 4px;outline:none;min-height:120px;padding:10px 12px;font-size:13px;line-height:1.7}.rte-body:focus{border-color:#0f6bdd}.dropdown-menu{z-index:200;background:#fff;border:1px solid #ebebeb;border-radius:4px;min-width:160px;display:none;position:absolute;box-shadow:0 4px 12px #0000001a}.dropdown-menu.show{display:block}.dropdown-menu a,.dropdown-menu .dropdown-item{color:#333;cursor:pointer;padding:8px 14px;font-size:13px;transition:background .15s;display:block}.dropdown-menu a:hover,.dropdown-menu .dropdown-item:hover{color:#0f6bdd;background:#f5f7fa}.dropdown-desc{color:#999;border-top:1px solid #f0f2f5;margin-top:4px;padding:4px 14px 8px;font-size:11px;line-height:1.5}.risk-event-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.risk-event-tag.stop-loss{color:#e11a1a;background:#ffe5e5}.risk-event-tag.take-profit{color:#1fc16b;background:#e3fae9}.risk-event-tag.liquidity{color:#0f6bdd;background:#ecf4ff}.risk-event-tag.alert{color:#f9a705;background:#fff5e0}.risk-result-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.risk-result-tag.executed{color:#1fc16b;background:#e3fae9}.risk-result-tag.pending{color:#f9a705;background:#fff5e0}.risk-result-tag.blocked,.risk-result-tag.failed{color:#e11a1a;background:#ffe5e5}.risk-result-tag.handled{color:#1fc16b;background:#e3fae9}.risk-rule-type{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.risk-rule-type.stock-ratio{color:#e11a1a;background:#ffe5e5}.risk-rule-type.absolute-price{color:#0f6bdd;background:#ecf4ff}.risk-rule-type.portfolio{color:#f9a705;background:#fff5e0}.risk-rule-type.drawdown-time{color:#666;background:#f0f2f5}.risk-rule-type.stock-profit{color:#1fc16b;background:#e3fae9}.risk-rule-status{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.risk-rule-status.enabled{color:#1fc16b;background:#e3fae9}.risk-rule-status.paused{color:#999;background:#f0f2f5}.risk-rule-status.triggered{color:#e11a1a;background:#ffe5e5}.risk-rule-status.expired{color:#999;background:#f0f2f5}.risk-action-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.risk-action-tag.auto-order{color:#e11a1a;background:#ffe5e5}.risk-action-tag.alert-only{color:#f9a705;background:#fff5e0}.notif-type-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.notif-type-tag.stop-loss{color:#e11a1a;background:#ffe5e5}.notif-type-tag.take-profit{color:#1fc16b;background:#e3fae9}.notif-type-tag.portfolio-alert{color:#f9a705;background:#fff5e0}.notif-type-tag.liquidity-block{color:#0f6bdd;background:#ecf4ff}.notif-type-tag.concentration{color:#e67e22;background:#fff5e0}.liquidity-tag{border-radius:3px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.liquidity-tag.high{color:#1fc16b;background:#e3fae9}.liquidity-tag.medium{color:#f9a705;background:#fff5e0}.liquidity-tag.low{color:#e11a1a;background:#ffe5e5}.notif-item{cursor:pointer;border-bottom:1px solid #f0f2f5;padding:12px 16px;transition:background .15s}.notif-item:hover{background:#f8f9fa}.notif-item.unread{background:#f0f7ff}.notif-item.unread:hover{background:#e6f0fd}.notif-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.notif-dot.unread{background:#e11a1a;border:2px solid #e11a1a}.notif-dot.read{background:0 0;border:2px solid #ccc}.risk-warning-card{background:#fff;border:1px solid #ebebeb;border-radius:6px;margin-bottom:10px;padding:14px 16px}.risk-warning-card.profit{background:#f0faf4;border-color:#b7e4c7}.rw-progress{background:#f0f2f5;border-radius:3px;width:100%;height:6px;margin-top:8px;overflow:hidden}.rw-bar{border-radius:3px;height:100%}.rw-bar.loss{background:linear-gradient(90deg,#f9a705,#e11a1a)}.rw-bar.profit{background:linear-gradient(90deg,#1fc16b,#1fc16b)}.risk-check-item{align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.risk-check-item.pass{color:#1fc16b}.risk-check-item.fail{color:#e11a1a}.risk-check-item.warn{color:#f9a705}.risk-stat-card{cursor:pointer;background:#fff;border:1px solid #ebebeb;border-radius:6px;flex:1;padding:16px;transition:box-shadow .2s}.risk-stat-card:hover{box-shadow:0 4px 16px #0000001a}.risk-stat-card.bordered{border-top:3px solid #0f6bdd}.stat-label{color:#999;margin-bottom:6px;font-size:12px}.stat-value{color:#333;font-size:28px;font-weight:700;line-height:1.2}.stat-sub{color:#666;margin-top:4px;font-size:12px}.stat-dot{background:#e11a1a;border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:10px}.formula-box{color:#e11a1a;background:#ffe5e5;border-radius:4px;padding:4px 10px;font-family:monospace;font-size:13px;display:inline-block}.formula-box.profit{color:#1fc16b;background:#e3fae9}@media (width<=1024px){.table-scroll-hint{display:block}.data-table td{height:48px}.trade-layout{flex-direction:column;padding:12px 16px}.trade-form{max-width:100%}.tab-nav{flex-wrap:nowrap;gap:20px;padding:0 16px;position:relative;overflow-x:auto}.tab-item{white-space:nowrap;flex-shrink:0}.tab-nav:after{content:"";pointer-events:none;z-index:1;background:linear-gradient(270deg,#fff,#0000);width:32px;position:absolute;top:0;bottom:0;right:0}.info-cards{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.info-card{min-width:0}.market-cards{grid-template-columns:repeat(2,1fr);gap:12px;padding:12px 16px;display:grid}.market-card{min-width:0}.three-col-cards{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.three-col-card{min-width:0}.perf-cards{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.perf-card{min-width:0}.two-col,.chart-grid{flex-direction:column}.chart-card{min-width:0}.filter-bar{gap:8px;padding:10px 12px}.filter-actions{width:100%;margin-left:0}.info-bar{flex-wrap:wrap;gap:8px 16px;padding:8px 16px}.modal-box{width:90vw;min-width:auto;max-width:520px}.highlight-box{flex-direction:column;align-items:flex-start}.highlight-badge{margin-bottom:8px;margin-right:0}.highlight-tip{max-width:100%;margin-left:0}.agg-panel{flex-direction:column}.batch-toolbar,.sellable-box{flex-direction:column;align-items:flex-start;gap:8px}.risk-stat-card{min-width:0}.section[id],.highlight-box[id],.note-section[id],.market-cards[id]{scroll-margin-top:56px}}@media (width<=480px){.status-bar{flex-wrap:wrap;gap:8px;padding:8px 12px}.status-item{flex-shrink:0;min-width:fit-content;padding:0 12px}.status-item:not(:last-child):after{display:none}.tab-nav{gap:16px;padding:0 12px}.info-cards{gap:8px}.market-cards{grid-template-columns:1fr;padding:8px 12px}.three-col-cards{grid-template-columns:1fr}.perf-cards{grid-template-columns:repeat(2,1fr);gap:8px}.quick-actions{flex-direction:column}.trade-layout{padding:12px}.modal-overlay.show{align-items:flex-end}.modal-box{width:100%;max-width:100%;max-height:85vh;padding-bottom:calc(24px + env(safe-area-inset-bottom));border-radius:12px 12px 0 0;margin:0;overflow-y:auto}.modal-box:before{content:"";background:#ddd;border-radius:2px;width:40px;height:4px;margin:0 auto 16px;display:block}.quote-card .quote-price{font-size:22px}}
