:root{--hermit-navy:#16324f;--hermit-navy-light:#1f4568;--hermit-bg:#f3f6fa}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background-color:var(--hermit-bg);color:#303133;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}.login-page{background:linear-gradient(135deg, var(--hermit-navy) 0%, var(--hermit-navy-light) 100%);justify-content:center;align-items:center;height:100%;display:flex}.login-card{width:380px;padding:16px 12px}.brand{text-align:center;margin-bottom:28px}.brand-title{color:var(--hermit-navy);letter-spacing:1px;font-size:28px;font-weight:600}.brand-subtitle{color:#909399;letter-spacing:2px;margin-top:4px;font-size:13px}.login-form{flex-direction:column;gap:16px;display:flex}.login-button{width:100%}.totp-hint{color:#606266;text-align:center;margin:0 0 4px;font-size:13px}.totp-links{flex-direction:column;align-items:center;gap:8px;display:flex}.back-link{color:#909399}.layout{flex-direction:column;height:100%;display:flex}.header{background-color:var(--hermit-navy);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex}.header-left{align-items:center;gap:8px;display:flex}.header-brand{align-items:baseline;display:flex}.brand-name{letter-spacing:1px;font-size:18px;font-weight:600}.brand-tag{color:#a8c4e0;letter-spacing:2px;margin-left:10px;font-size:12px}.user-menu{color:#fff;cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:4px 8px;display:flex}.user-menu-name{font-weight:600}.hamburger{color:#fff;font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:none}.shell{flex:1;min-height:0;display:flex}.sidebar{background:#fff;border-right:1px solid #e3e8ef;flex-shrink:0;width:220px;padding:12px 8px;overflow-y:auto}.nav-menu{flex-direction:column;gap:2px;display:flex}.nav-link{color:#424242;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;text-decoration:none;display:flex}.nav-link:hover{background:#f0f4f9}.nav-link.active{color:#0f6cbd;background:#e8f1fb;font-weight:600}.content{flex:1;min-width:0;padding:24px;overflow-y:auto}.page-title{color:var(--hermit-navy);margin:0 0 8px;font-size:20px}.page-header{align-items:center;gap:8px;margin-bottom:16px;display:flex}.page-header .page-title{margin:0}.page-text{color:#909399;margin:0}.page-status{justify-content:center;padding:48px 0;display:flex}.games-page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.games-page-header .page-title{margin:0}.games-card{padding:16px}.games-card .games-page-header{margin-bottom:8px}.games-tab.games-tab-running{color:#107c10}.games-tab.games-tab-paused{color:#da3b01}.games-tab.games-tab-error{color:#d13438}.games-tab.games-tab-stopped{color:#800002}.games-tab.games-tab-created{color:#0f80ff}.games-grid-tabbed{margin-top:12px}.games-status-dropdown.games-status-dropdown{display:none}@media (width<=768px){.games-tablist.games-tablist{display:none}.games-status-dropdown.games-status-dropdown{min-width:0;margin-top:4px;display:flex}}.account-summary-header-actions{align-items:center;gap:8px;display:flex}.games-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.games-grid>.game-card{min-width:0}.game-card-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.game-card-name{color:var(--hermit-navy);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.game-card-body{flex-direction:column;display:flex}.game-card-actions{justify-content:flex-start;gap:24px}.game-field{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;display:flex}.game-field+.game-field{border-top:1px solid #f0f2f5}.game-field.game-field-info,.game-field.game-field-buy,.game-field.game-field-sell,.game-field.game-field-muted,.game-field.game-field-flat{border-radius:4px;padding:5px 8px}.game-field.game-field-info{background-color:#dde8f680}.game-field.game-field-buy{background-color:#dff1d380}.game-field.game-field-sell{background-color:#f8feb180}.game-field.game-field-muted{background-color:#e8e8e8}.game-field-label{color:#606266;flex-shrink:0}.game-status-badge.game-status-badge-stopped{color:#fff;background-color:#800002}.game-status-badge.game-status-badge-created{color:#fff;background-color:#0f80ff}.game-field-value{color:#303133;text-align:right;word-break:break-word;font-weight:600}@media (width<=768px){.games-grid{grid-template-columns:1fr}}.game-card-clickable{cursor:pointer;transition:box-shadow .15s}.game-card-clickable:hover{box-shadow:0 2px 8px #16324f26}.game-edit-page{flex-direction:column;align-items:center;gap:16px;display:flex}.game-edit-card{flex-direction:column;gap:12px;width:480px;max-width:100%;display:flex}.game-edit-card.game-edit-card-buy{background-color:#dff1d380}.game-edit-card.game-edit-card-sell{background-color:#f8feb180}.game-edit-card.game-edit-card-header{background-color:#dde8f780}.game-edit-card.game-edit-card-backtest{background-color:#d9d9d980}.backtest-button{font-weight:400}.game-edit-form{display:contents}.game-edit-header{margin-bottom:4px}.game-edit-subtitle{color:#909399;font-size:13px}.game-edit-actions{align-items:center;gap:16px;width:480px;max-width:100%;display:flex}.game-edit-save-error{color:var(--colorPaletteRedForeground1);font-size:var(--fontSizeBase200);width:480px;max-width:100%}.game-edit-danger-zone{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.field-hint-lines{color:var(--colorNeutralForeground3);font-size:var(--fontSizeBase200);white-space:pre-line}.game-edit-card-title{color:var(--hermit-navy);margin:0;font-size:14px;font-weight:400}.game-state-actions{gap:8px;display:flex}.game-state-actions button{color:var(--hermit-navy);background-color:#fff;border:1px solid #d6dee8}@media (width<=768px){.game-edit-card{width:100%}.sidebar{display:none}.hamburger{display:flex}.content{padding:16px}}.dialog-form{flex-direction:column;gap:12px;display:flex}.backtest-note{color:var(--colorNeutralForeground3);font-size:var(--fontSizeBase200)}.backtest-running,.backtest-result{margin-top:16px}.backtest-total-pnl{font-size:18px}.backtest-reason{text-overflow:ellipsis;max-width:260px;overflow:hidden}.rsi-range-slider{align-items:center;gap:12px;padding:8px 0;display:flex}.rsi-range-track-outer{cursor:pointer;flex:1;align-items:center;height:24px;display:flex}.rsi-range-track{background-color:#e3e8ef;border-radius:2px;width:100%;height:4px;position:relative}.rsi-range-track-fill{background-color:var(--hermit-navy);border-radius:2px;position:absolute;top:0;bottom:0}.rsi-range-thumb{border:2px solid var(--hermit-navy);cursor:grab;background-color:#fff;border-radius:50%;outline:none;width:16px;height:16px}.rsi-range-thumb:active{cursor:grabbing}.rsi-range-thumb:focus-visible{box-shadow:0 0 0 3px #16324f40}.rsi-range-value{text-align:right;font-variant-numeric:tabular-nums;color:#303133;flex-shrink:0;min-width:48px;font-size:13px;font-weight:600}.rsi-range-slider-disabled .rsi-range-track-outer,.rsi-range-slider-disabled .rsi-range-thumb{cursor:not-allowed}.rsi-range-slider-disabled .rsi-range-track-fill{background-color:#b3bfd0}.rsi-range-slider-disabled .rsi-range-thumb{border-color:#b3bfd0}.rsi-range-slider-disabled .rsi-range-value{color:#909399}.indicators-status{justify-content:center;padding:48px 0;display:flex}.indicator-price-bar{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.indicator-symbol{color:var(--hermit-navy);font-size:18px;font-weight:600}.indicator-price{color:#0f6cbd;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600}.indicator-updated{color:#909399;font-size:12px}.indicator-groups{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.indicator-group.indicator-group{background-color:#e8e8e880}.indicator-group-title{color:var(--hermit-navy);text-transform:uppercase;letter-spacing:1px;margin:0 0 12px;font-size:14px;font-weight:700}.indicator-row{font-variant-numeric:tabular-nums;justify-content:space-between;padding:5px 0;font-size:14px;display:flex}.indicator-row+.indicator-row{border-top:1px solid #f0f2f5}.indicator-label{color:#606266}.indicator-value{color:#303133;font-weight:600}.indicator-target-profit{margin-left:4px;font-size:12px}.header-right{align-items:center;gap:4px;display:flex}.indicators-menu{align-items:center;display:flex;position:relative}.indicators-menu-button{color:#fff;font:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px 8px;display:flex}.indicators-menu-panel{z-index:1000;color:#303133;background:#fff;border-radius:8px;width:min(420px,100vw - 48px);max-height:70vh;padding:16px;animation:.18s ease-out indicators-menu-slide-down;position:absolute;top:calc(100% + 12px);right:0;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.indicators-menu-panel-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.indicators-menu-panel-title{color:var(--hermit-navy);text-transform:uppercase;letter-spacing:1px;font-size:14px;font-weight:700}.indicators-menu-symbols{flex-direction:column;gap:8px;display:flex}.indicators-menu-symbol{font:inherit;color:var(--hermit-navy);cursor:pointer;text-align:left;background:#fff;border:1px solid #d6dee8;border-radius:6px;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;display:flex}.indicators-menu-symbol:hover{background:#f0f4f9}@keyframes indicators-menu-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.indicators-menu-panel{border-radius:8px 0 0;width:min(300px,100vw - 96px);max-height:none;position:fixed;top:64px;bottom:0;right:0}}.transactions-page{flex-direction:column;gap:16px;display:flex}.transactions-filter{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.transactions-filter .transactions-filter-field{flex:200px;min-width:180px}.transactions-anchor-note{color:#606266;margin-bottom:12px;font-size:13px;display:block}.transactions-summary{border-bottom:1px solid #e4e7ed;flex-wrap:wrap;gap:8px 32px;margin-bottom:12px;padding-bottom:12px;font-size:13px;display:flex}.transactions-summary-item{align-items:baseline;gap:8px;display:flex}.transactions-summary-label{color:#909399}.transactions-summary-value{color:#303133;font-weight:600}.transactions-table-wrapper{max-height:70vh;overflow:auto}.transactions-table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;width:100%;font-size:13px}.transactions-table th{z-index:1;text-align:left;color:#606266;background:#fff;border-bottom:1px solid #e4e7ed;padding:6px 12px 6px 0;font-weight:600;position:sticky;top:0}.transactions-table td{color:#303133;border-bottom:1px solid #f0f2f5;padding:6px 12px 6px 0}.transactions-table .transactions-row-clickable{cursor:pointer}.transactions-table .transactions-row-clickable:hover td{background-color:#f5f7fa}.transactions-table .transactions-comment{white-space:normal;color:#606266;min-width:200px}.transactions-status-cell{align-items:center;gap:8px;display:flex}.transactions-net-quantity{color:#909399;font-size:12px}.transactions-precision-note{color:var(--colorNeutralForeground3);font-size:var(--fontSizeBase200);margin-top:12px}.transactions-back{margin:4px 0 8px;font-size:13px}.query-quick-ranges{gap:16px;padding:6px 0 0;font-size:13px;display:flex}.transactions-filter .query-range-group{flex:200px;min-width:180px}.transactions-filter.query-filter{align-items:flex-start}.query-filter-toggle{display:none}.profit-positive{color:#16a34a;font-weight:600}.profit-negative{color:#dc2626;font-weight:600}.account-summary-card{margin-top:16px;padding:16px}.account-summary-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.account-summary-updated{color:#909399;font-size:12px}.account-summary-meta{color:#606266;gap:24px;margin-bottom:8px;font-size:13px;display:flex}.account-row{color:#303133;border-bottom:1px solid #f0f2f5;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:8px;padding:6px 0;font-size:13px;display:grid}.account-row>span:not(:first-child){text-align:right}.account-row-head{color:#909399;border-bottom:1px solid #e4e7ed;font-size:12px;font-weight:600}.account-total-row{border-bottom:none;font-weight:600}@media (width<=480px){.account-row{gap:4px;font-size:12px}}@media (width<=768px){.transactions-filter{flex-direction:column;align-items:stretch}.transactions-filter.query-filter{align-items:stretch}.query-filter-card{position:relative}.query-filter-toggle{z-index:1;display:inline-flex;position:absolute;top:4px;right:4px}.transactions-filter.query-filter-collapsed{display:none}.transactions-filter .transactions-filter-field,.transactions-filter .query-range-group{flex:0 auto;min-width:0}}
