*{box-sizing:border-box;margin:0;padding:0}:root{--bg-0: #0f1115;--bg-1: #17191d;--bg-2: #1e2126;--bg-3: #24272c;--border: #2e2c28;--text-0: #ece6da;--text-1: #a9a296;--text-2: #8e887e;--accent: #d8b061;--accent-dim: #b8964d;--accent-bright: #eec774;--danger: #e06060;--danger-dim: #b84545;--warn: #e0a94f;--info: #c9a96a;--buy: #10b981;--sell: #ef4444;--mono: "SF Mono", "JetBrains Mono", "Menlo", monospace;--serif: "Songti SC", "Noto Serif SC", "STSong", "SimSun", serif}html,body{height:100%;background:var(--bg-0);color:var(--text-0);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Segoe UI,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.app{display:flex;height:100vh}.sidebar{width:200px;background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--border)}.brand-logo{width:32px;height:32px;background:var(--accent);color:var(--bg-0);border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:700;padding:0;font-size:16px}.brand-title{font-size:14px;font-weight:600;font-family:var(--serif)}.brand-sub{font-size:11px;color:var(--text-2)}.nav{flex:1;padding:8px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;color:var(--text-1);font-size:13px;border-left:2px solid transparent;transition:all .15s}.nav-item:hover{background:var(--bg-2);color:var(--text-0)}.nav-item.active{background:var(--bg-2);color:var(--accent);border-left-color:var(--accent)}.nav-icon{font-size:14px;width:18px;text-align:center;opacity:.9}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.conn-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2)}.conn-status .dot{width:8px;height:8px;border-radius:50%;background:var(--text-2);transition:background .3s}.conn-status.connected .dot{background:var(--buy)}.conn-status.disconnected .dot{background:var(--danger)}.env-tag{font-size:10px;padding:2px 6px;border-radius:3px;background:var(--bg-3);color:var(--text-1);font-family:var(--mono);text-transform:uppercase}.env-tag.production{background:var(--danger);color:#fff}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:56px;background:var(--bg-1);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:16px}.topbar h1{font-size:16px;font-weight:600;font-family:var(--serif)}.clock{color:var(--text-2);font-family:var(--mono);font-size:12px}.topbar-right{display:flex;align-items:center;gap:20px}.metric{text-align:right}.metric-label{font-size:11px;color:var(--text-2)}.metric-value{font-size:14px;font-weight:600;font-family:var(--mono)}.btn{padding:6px 12px;border:1px solid var(--border);border-radius:4px;background:var(--btn-bg, var(--bg-2));color:var(--btn-fg, var(--text-0));font-size:12px;transition:all .15s}.btn:hover{background:var(--btn-bg-hover, var(--bg-3));border-color:var(--text-2)}.btn-primary{--btn-bg: linear-gradient(135deg, #e5c47a, #c9a052);--btn-bg-hover: linear-gradient(135deg, #eec774, #d8b061);--btn-fg: #17120a;border-color:#c9a052;font-weight:600}.btn:disabled,.btn:disabled:hover{opacity:.5;cursor:not-allowed;background:var(--bg-2);border-color:var(--border);color:var(--text-1);box-shadow:none;transform:none}.btn-danger{background:var(--danger-dim);color:#fff;border-color:var(--danger-dim);font-weight:600}.btn-danger:hover{background:#a83e3e;border-color:#a83e3e}.btn-ghost{background:transparent;border-color:var(--border)}.btn-ghost:hover{background:transparent;color:var(--accent-bright);border-color:var(--accent)}.btn-danger-ghost{background:transparent;border-color:var(--danger);color:var(--danger);font-weight:600}.btn-danger-ghost:hover{background:var(--danger-dim);border-color:var(--danger-dim);color:#fff}.btn-sm{padding:4px 8px;font-size:11px}.btn-active.kill{background:var(--danger);border-color:var(--danger);color:#fff;animation:pulse 1.6s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.content{flex:1;overflow-y:auto;padding:20px}.view{display:none}.view.active{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;padding:14px 16px}.kpi-label{font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}.kpi-value{font-size:22px;font-weight:600;font-family:var(--mono);margin-top:4px}.panel{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;margin-bottom:16px;overflow:hidden}.panel-header{padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-1);display:flex;align-items:center;justify-content:space-between}.panel-actions{display:flex;gap:8px;align-items:center}.panel-body{padding:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1000px){.grid-2{grid-template-columns:1fr}}.empty{color:var(--text-2);text-align:center;padding:24px;font-size:12px}.help-note{background:var(--bg-2);border:1px solid rgba(216,176,97,.3);border-radius:6px;padding:10px 12px;margin-bottom:14px;font-size:12px;line-height:1.8;color:var(--text-1)}.help-note b{color:var(--text-0);font-weight:600}.help-note div+div{margin-top:6px}.select-inline{background:var(--bg-2);border:1px solid var(--border);color:var(--text-0);padding:4px 8px;border-radius:4px;font:inherit;font-size:12px}.price-tiles{padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.price-tile{background:#00000038;border-radius:8px;padding:10px 12px}.price-tile.clickable{cursor:pointer;transition:background-color .15s ease}.price-tile.clickable:hover{background:#d8b0611a}.price-tile .sym{display:flex;align-items:baseline;gap:3px;font-weight:600;color:var(--text-1)}.price-tile .sym-base{font-size:14px}.price-tile .sym-quote{font-size:10px;color:var(--text-2)}.price-tile .tile-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.price-tile .tile-row>*{min-width:0}.price-tile .tile-body{margin-top:4px}.price-tile .pct-label{font-size:11px;font-weight:400;color:var(--text-2)}.price-tile .last{font-family:var(--mono);font-size:18px;font-weight:600}.price-tile .pct{font-family:var(--mono);font-size:13px}.pct.pos{color:var(--buy)}.pct.neg{color:var(--danger)}.strategy-card{background:var(--bg-2);border:1px solid var(--border);border-radius:5px;padding:12px;margin-bottom:8px}.strategy-card:last-child{margin-bottom:0}.strategy-card .row{display:flex;justify-content:space-between;align-items:center}.strategy-name{font-weight:600;font-size:13px}.strategy-desc-card{border:1px solid rgba(216,176,97,.3);background:var(--bg-2);border-radius:6px;padding:8px 10px;margin:8px 0;font-size:12px;line-height:1.7;color:var(--text-1)}.strategy-desc-card .desc-line{margin-top:4px}.strategy-desc-card .desc-label{color:var(--text-2)}.strategy-desc-card .desc-risk{color:var(--danger)}.strategy-state{font-size:10px;padding:2px 6px;border-radius:3px;font-family:var(--mono);text-transform:uppercase;background:var(--bg-3);color:var(--text-1)}.strategy-state.running{background:var(--buy);color:var(--bg-0)}.strategy-state.paused{background:var(--warn);color:var(--bg-0)}.strategy-state.error{background:var(--danger);color:#fff}.strategy-meta{color:var(--text-2);font-size:11px;margin-top:4px}.strategy-actions{display:flex;gap:6px;margin-top:8px}.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.table th{font-weight:600;color:var(--text-2);text-transform:uppercase;font-size:10px;letter-spacing:.5px;background:var(--bg-2)}.table tr:hover td{background:var(--bg-2)}.table td{font-family:var(--mono)}.table td.label{font-family:inherit}.state-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase}.state-badge.filled{background:var(--buy);color:var(--bg-0)}.state-badge.rejected{background:var(--danger-dim);color:#fff}.state-badge.submitted{background:var(--info);color:var(--bg-0)}.state-badge.partially_filled{background:var(--warn);color:var(--bg-0)}.state-badge.canceled,.state-badge.failed,.state-badge.pending{background:var(--bg-3);color:var(--text-1)}.side-buy{color:var(--buy)}.side-sell{color:var(--sell)}.chart-wrap{padding:12px;height:480px}#chart{width:100%;height:100%}.ob-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:10px 14px}.ob-side{font-family:var(--mono);font-size:11px}.ob-side .row{display:flex;justify-content:space-between;padding:2px 0}.ob-side.asks .row .price{color:var(--sell)}.ob-side.bids .row .price{color:var(--buy)}.ob-side h4{color:var(--text-2);font-size:10px;text-transform:uppercase;margin-bottom:4px}.risk-card{background:var(--bg-2);border-radius:5px;padding:16px;margin-bottom:12px}.risk-label{font-size:12px;color:var(--text-1);margin-bottom:4px}.risk-value{font-size:18px;font-weight:600;font-family:var(--mono);margin-bottom:12px}.risk-actions{display:flex;gap:8px}.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.risk-grid .item{background:var(--bg-2);padding:10px 12px;border-radius:4px}.risk-grid .item .label{font-size:11px;color:var(--text-2)}.risk-grid .item .value{font-family:var(--mono);font-size:14px;font-weight:600}::-webkit-scrollbar-track{background:var(--bg-0)}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-2)}.muted{color:var(--text-2);font-size:11px}.warn{color:var(--warn)}.form-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.form-row label{width:90px;color:var(--text-1);font-size:12px}.form-row input,.form-row select{flex:1;max-width:220px;padding:6px 10px;background:var(--bg-3);color:var(--text-0);border:1px solid var(--border);border-radius:4px;font:inherit;outline:none}.form-row input:focus,.form-row select:focus{border-color:var(--accent)}.param-field input,.param-field select{width:100%;max-width:none}.kpi-sub{font-size:11px;color:var(--text-2);margin-top:4px}.log-stream{background:#0b0d10;color:var(--text-1);font-family:var(--mono);font-size:11px;line-height:1.5;padding:12px;border-radius:4px;height:calc(100vh - 220px);min-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}:root{--radius: 10px;--shadow-1: 0 1px 2px rgba(0,0,0,.3);--shadow-2: 0 6px 14px rgba(0,0,0,.35);--ring: 0 0 0 2px var(--bg-0), 0 0 0 4px var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--ring)}.brand-logo{background:linear-gradient(135deg,#eec774,#c9a052);color:#16120b}.brand-logo img{width:100%;height:100%;display:block}.sidebar{background:linear-gradient(180deg,var(--bg-1),#14161a)}.nav-item{border-radius:0 8px 8px 0;transition:background .12s,color .12s,border-color .12s}.nav-item.active{background:linear-gradient(90deg,rgba(216,176,97,.15),transparent);box-shadow:inset 2px 0 0 var(--accent)}.panel{border-radius:var(--radius);box-shadow:var(--shadow-1)}.panel-header{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);padding:12px 16px}.panel-body{padding:16px}.kpi{border-radius:var(--radius);background:linear-gradient(180deg,var(--bg-2),var(--bg-1));box-shadow:var(--shadow-1);transition:transform .15s,box-shadow .15s}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.price-tile:focus-visible{outline:none;box-shadow:var(--ring)}.btn{border-radius:8px;transition:background .12s,border-color .12s,box-shadow .12s,transform .05s}.btn:active{transform:scale(.97)}.btn-danger{background:linear-gradient(135deg,#ef4444,#b91c1c)}.table th{background:#ffffff05}.table tr:hover td{background:#d8b0610d}.table td.num{text-align:right;font-variant-numeric:tabular-nums}.form-row input,.form-row select{border-radius:6px;transition:border-color .12s,box-shadow .12s}.form-row input:focus,.form-row select:focus{box-shadow:0 0 0 3px #d8b0612e}.conn-status.connected .dot{animation:dot-pulse 2s infinite}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.55}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{border-radius:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app-mobile{flex-direction:column;height:100vh;height:100dvh}.app-mobile .main{flex:1;overflow-y:auto}.app-mobile .topbar{flex-shrink:0;padding:0 14px}.tabbar{display:flex;flex-shrink:0;background:var(--bg-1);border-top:1px solid var(--border);min-height:58px;height:auto;padding:6px 0;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:none;color:var(--text-2);font-size:11px}.tab-item .tab-icon{font-size:18px;line-height:1}.tab-item.active{color:var(--accent-bright)}.tab-item:focus-visible{box-shadow:var(--ring)}.asset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:12px}.asset-grid .kpi-value{font-size:17px;overflow-wrap:anywhere}.hoard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.hoard-grid .stat{min-width:0}.hoard-grid .kpi-sub{margin-top:2px}.hh-row{display:flex;gap:8px}.hh-row+.hh-row{margin-top:2px}.hh-k{flex:0 0 4.5em;color:var(--text-2)}.hh-v{min-width:0;overflow-wrap:anywhere}.sect-label{display:flex;align-items:center;gap:6px;margin:2px 0 8px;font-size:11px;font-weight:600;color:var(--text-1);letter-spacing:.5px}.sect-label .muted{font-weight:400}.mine-links{display:flex;flex-direction:column;gap:10px}.mine-links .btn{text-align:center}.mine-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.mine-row:last-child{border-bottom:none}.admin-log{white-space:pre-wrap;word-break:break-all;font-size:11px}@media (max-width: 700px){.topbar h1{font-size:14px}.content,.panel-body{padding:12px}.form-row{flex-wrap:wrap}.app:not(.app-mobile) .sidebar{width:62px;align-items:center;padding:8px 0}.app:not(.app-mobile) .brand{flex-direction:column;gap:2px;padding:10px 0 6px;width:100%;justify-content:center;border-bottom:1px solid var(--border)}.app:not(.app-mobile) .brand-title,.app:not(.app-mobile) .brand-sub{display:none}.app:not(.app-mobile) .nav{flex:1;width:100%;padding:4px 0;overflow-y:auto}.app:not(.app-mobile) .nav-item{flex-direction:column;gap:2px;padding:8px 0;justify-content:center;text-align:center}.app:not(.app-mobile) .nav-item span:last-child{font-size:9px;line-height:1.2}.app:not(.app-mobile) .nav-item.active{border-left-color:var(--accent)}.app:not(.app-mobile) .sidebar-footer{display:none}}.modal{display:none;position:fixed;inset:0;background:#000000b3;z-index:100;align-items:center;justify-content:center}.modal.show{display:flex}.modal-content{background:var(--bg-1);border:1px solid var(--border);border-radius:8px;width:720px;max-width:90vw;max-height:85vh;overflow-y:auto;padding:20px}.chart-modal-content{width:min(960px,94vw);padding:14px}.chart-modal-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.chart-modal-title{font-weight:600;font-size:15px;flex:1}.chart-modal-content .chart-wrap{height:min(62vh,560px);padding:0}.strategy-detail h3{margin-bottom:6px;font-size:16px}.strategy-detail h4{font-size:12px;color:var(--text-1);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding-bottom:4px;margin-bottom:8px}.param-editor{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.param-row{display:flex;align-items:center;gap:8px;margin-bottom:14px}.param-row label{width:80px;color:var(--text-2);font-size:12px}.param-row .param-desc,.param-field .param-desc{flex:1;font-size:10px;color:var(--text-2);line-height:1.5}.param-field>select,.param-field>input[data-param],.param-row>select,.param-row>input[data-key]{flex:0 0 130px}.param-row input{flex:1;background:var(--bg-3);color:var(--text-0);border:1px solid var(--border);padding:4px 8px;border-radius:3px;font-family:var(--mono);font-size:12px}.signal-list{max-height:200px;overflow-y:auto;background:var(--bg-0);border-radius:4px;padding:4px}.signal-row{display:grid;grid-template-columns:80px 60px 80px 1fr 100px;gap:8px;padding:4px 8px;font-size:11px;border-bottom:1px solid var(--bg-2);font-family:var(--mono)}.signal-row .ts{color:var(--text-2)}.signal-row .action{font-weight:700}.signal-row .action-buy{color:var(--buy)}.signal-row .action-sell{color:var(--sell)}.signal-row .action-close{color:var(--warn)}.signal-row .sym{color:var(--info)}.signal-row .reason{color:var(--text-1)}.signal-row .price{color:var(--text-2);text-align:right}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.metric-value.pos{color:var(--buy)}.metric-value.neg{color:var(--danger)}.btn.btn-active.kill{background:var(--danger);color:var(--bg-0);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.manual-grid{display:grid;grid-template-columns:320px 1fr;gap:24px}.manual-h3{font-size:12px;font-weight:600;color:var(--text-1);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;justify-content:space-between}.manual-form,.manual-list{background:var(--bg-1);padding:16px;border-radius:6px;border:1px solid var(--border)}.manual-form .form-row label{width:60px}.manual-form input,.manual-form select{background:var(--bg-2);border:1px solid var(--border);color:var(--text-0);padding:6px 8px;border-radius:4px;font-size:12px}.manual-form input:focus,.manual-form select:focus{outline:none;border-color:var(--accent)}@media (max-width: 900px){.manual-grid{grid-template-columns:1fr}}.auth-user{display:flex;align-items:center;justify-content:space-between;padding:6px 0;margin-top:6px;font-size:11px;color:var(--text-2);border-top:1px solid var(--border)}.auth-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-logout{color:var(--accent);font-size:11px}.auth-logout:hover{color:var(--accent-dim)}.auto-trade-banner{display:none;align-items:center;gap:10px;background:#f0a5001f;border-bottom:1px solid rgba(240,165,0,.35);color:var(--text-0);font-size:12px;padding:6px 14px;flex-wrap:wrap}.strategy-add-remind{font-size:11px;color:var(--warn);margin:6px 0 10px;line-height:1.5}.auto-trade-tip{font-size:11px;color:var(--warn);margin:6px 0;line-height:1.5}.rs-detail-row td{padding:0}.rs-detail-inline{padding:12px 14px;background:var(--bg-2);border:1px solid rgba(216,176,97,.3);border-radius:6px;font-size:12px;line-height:1.6}.pos{color:var(--buy)}.neg{color:var(--danger)}.rs-row{cursor:pointer}.rs-detail-inline{padding:12px 14px;background:var(--bg-2);border:1px solid rgba(216,176,97,.3);border-radius:6px;font-size:12px;line-height:1.7}.strategy-actions .btn-sm{margin-top:2px}#p-levels .form-row,#bt-levels .form-row{margin-top:8px;flex-wrap:wrap;gap:6px}.market-modal-content{width:min(460px,96vw);padding:0;border-radius:10px;overflow:hidden}.market-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:linear-gradient(180deg,rgba(216,176,97,.08),transparent);border-bottom:1px solid var(--border)}.market-modal-title{font-weight:700;font-size:14px;letter-spacing:.3px}.market-modal-close{background:transparent;border:none;color:var(--text-2);font-size:18px;line-height:1;padding:2px 6px;border-radius:4px}.market-modal-close:hover{color:var(--text-0);background:var(--bg-3)}.market-modal-body{padding:4px 14px 12px}.market-hero{display:flex;align-items:flex-end;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.market-hero .mk-last{font-family:var(--mono);font-size:25px;font-weight:700;color:var(--text-0);line-height:1.2;margin-top:2px}.mk-chg{font-family:var(--mono);font-size:14px;font-weight:600;margin-top:2px}.mk-label{font-size:10px;color:var(--text-2);text-transform:uppercase;letter-spacing:.4px}.mk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.mk-card{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.mk-card.mk-wide{grid-column:1 / -1}.mk-card .mk-value{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text-0);margin-top:3px;word-break:break-all}.mk-card .mk-sub{font-family:var(--mono);font-size:10px;color:var(--text-2);margin-top:2px}.mk-card.mk-buy .mk-value{color:var(--buy)}.mk-card.mk-sell .mk-value{color:var(--sell)}.market-modal-foot{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-top:1px solid var(--border);font-size:10px;color:var(--text-2);font-family:var(--mono)}@media (max-width: 420px){.market-hero .mk-last{font-size:21px}}.gate-card{border:1px solid var(--border);border-radius:6px;margin-bottom:8px;background:var(--bg-2);overflow:hidden}.gate-card.open{border-color:var(--accent)}.gate-head{display:flex;align-items:center;gap:8px;padding:9px 10px;cursor:pointer}.gate-head:hover{background:var(--bg-3)}.gate-idx{flex:0 0 18px;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;border:1px solid var(--border);color:var(--text-2)}.gate-idx.pos{border-color:var(--buy);color:var(--buy)}.gate-idx.warn{border-color:var(--accent);color:var(--accent)}.gate-title{font-size:12px;color:var(--text-0)}.gate-state{margin-left:auto;font-size:11px;text-align:right}.gate-caret{font-size:10px;color:var(--text-2)}.gate-body{padding:8px 10px 10px;border-top:1px dashed var(--border)}.gate-body .form-row input{max-width:none;flex:1}.acct-avatar{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:#d8b06129;color:var(--accent)}.acct-name{font-size:12px;color:var(--text-0);margin-left:2px}@media (max-width: 420px){.acct-name{font-size:11px}}.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at top,#1c1e22,#0f1115 60%),var(--bg-0)}.login-card{width:360px;background:var(--bg-1);border-radius:8px;padding:28px;box-shadow:0 20px 60px #0009}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-title{font-size:18px;font-weight:600;margin:0 0 4px;color:var(--text-0);font-family:var(--serif)}.login-hint{margin:0 0 20px;font-size:12px;color:var(--text-2)}.login-card .form-row{margin-bottom:12px}.login-card .form-row label{width:70px}.login-card .form-row input{flex:1;background:var(--bg-2);border:1px solid var(--border);color:var(--text-0);padding:8px 10px;border-radius:4px;font-size:13px;font-family:inherit}.login-card .form-row input:focus{outline:none;border-color:var(--accent);background:var(--bg-3)}.login-btn{width:100%;margin-top:8px;padding:10px}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{margin-top:14px;padding:10px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.45);color:var(--danger);font-size:12px;border-radius:6px;display:none}.login-error:not(:empty){display:block}.login-footer{margin-top:18px;text-align:center;font-size:11px}
