:root{--bg:#f4f7f8;--ink:#152a30;--muted:#6c808c;--line:#dce5e8;--teal:#139b94;--green:#059a73;--red:#e54658;--sidebar:#102829;--radius:9px;font-family:Inter,"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:15px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:3px}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h2{font-size:23px;line-height:1.4}h3{font-size:16px}small,.muted{color:var(--muted);font-size:13px}.hidden{display:none!important}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.app{display:flex;min-height:100vh}.sidebar{position:fixed;width:226px;inset:0 auto 0 0;background:var(--sidebar);color:#dce9e8;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:28px 20px 30px}.brand-mark{background:var(--teal);color:#fff;width:43px;height:43px;border-radius:11px;display:grid;place-items:center;font-size:28px;font-weight:700}.brand strong{font-size:21px;color:#fff;display:block;line-height:1.2}.brand small{display:block;color:#8bb9b8;margin-top:5px;font-size:12px}.sidebar nav{padding:0 10px}.nav-item{display:flex;width:100%;align-items:center;gap:14px;background:none;border:0;color:#c1d7d6;padding:14px 17px;border-radius:7px;margin:5px 0;text-align:left;font-size:14px}.nav-item svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;fill:none}.nav-item:hover{background:#1a3637}.nav-item.active{background:#274243;color:#fff}.nav-item.active svg{color:#41ccc1}.sidebar-bottom{margin-top:auto;padding:22px}.sidebar-market{border-top:1px solid #294344;border-bottom:1px solid #294344;padding:20px 0;display:flex;flex-direction:column;gap:6px}.sidebar-market span{font-size:12px;color:#7ca19f}.sidebar-market strong{font-size:17px;font-weight:600}.sidebar-market small{font-size:12px;color:#729b99}.logout{background:none;border:0;color:#a4c3c1;padding:16px 0;font-size:13px}.version{display:block;font-size:12px;color:#618986}.shell{margin-left:226px;width:calc(100% - 226px)}header{height:76px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.header-left,.header-right{display:flex;align-items:center;gap:18px}.header-left h1{font-size:23px}.header-right{font-size:13px;color:var(--muted)}.connection:before{content:"";display:inline-block;vertical-align:middle;background:#d1a034;width:6px;height:6px;border-radius:50%;margin-right:7px}.connection.online:before{background:var(--green)}.connection.offline:before{background:var(--red)}.menu-toggle{display:none;border:0;background:none;color:var(--ink);font-size:22px}main{padding:28px 30px;max-width:1650px;margin:auto}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.page-intro p{font-size:14px;color:var(--muted);margin-top:7px;line-height:1.6}.actions{display:flex;gap:10px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 17px;border:1px solid #cfdcdf;background:#fff;color:#38555e;border-radius:6px;line-height:1.2;font-size:14px;white-space:nowrap}.button:hover{border-color:#809d9d;background:#f8fbfb}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff}.button.primary:hover{background:#108b85}.button.danger{color:#bc3545;border-color:#e9c4ca}.button.small{padding:7px 12px;font-size:13px}.text-button{background:none;color:var(--teal);border:0;font-size:13px}.pill{display:inline-flex;align-items:center;font-size:12px;padding:5px 9px;border-radius:5px;line-height:1.2;white-space:nowrap}.pill.blue{color:#2666ad;background:#edf4ff}.pill.gray{color:#657c82;background:#eef3f4}.pill.red{color:#cc3546;background:#fdeef0}.pill.green{color:#087f61;background:#e4f5ee}.pill.yellow{color:#976505;background:#fff4d3}.notice{display:flex;gap:13px;border:1px solid #cfe4ed;background:#eef8fc;padding:15px 18px;border-radius:7px;margin-bottom:20px;color:#376b81}.notice.warning{background:#fff7e6;border-color:#edd69d;color:#946214}.notice.error{background:#fff1f2;border-color:#eebcc5;color:#b53c4a}.notice-icon{border:1px solid currentColor;width:19px;height:19px;display:inline-grid;place-items:center;border-radius:50%;font-size:12px;flex-shrink:0;margin-top:2px}.notice strong{font-size:14px}.notice p{font-size:13px;line-height:1.6;margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:19px 20px;min-height:120px}.stat-card>span{color:var(--muted);font-size:13px;display:block}.stat-card strong{font-size:27px;line-height:1.25;display:block;margin:10px 0 8px;letter-spacing:-.5px}.stat-card small{font-size:12px;line-height:1.5;display:block}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:19px 20px;border-bottom:1px solid #e9eff1}.card-head>div:first-child{display:flex;align-items:center;gap:12px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:20px}.chart-card,.round-card{margin-bottom:20px}.canvas-wrap{position:relative;height:320px;padding:12px 5px 0 12px}.canvas-wrap canvas,.equity-wrap canvas{width:100%;height:100%;display:block}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:var(--muted)}.chart-legend{display:flex;gap:12px;align-items:center;font-size:12px;white-space:nowrap}.chart-legend select{font-size:12px;width:auto;padding:5px 7px;min-height:30px}.legend-up,.legend-down{display:flex;align-items:center;gap:4px}.legend-up:before,.legend-down:before{content:"";width:6px;height:9px;background:var(--green);display:inline-block}.legend-down:before{background:var(--red)}.chart-foot{color:var(--muted);padding:10px 20px 15px;font-size:12px;line-height:1.6}.countdown{padding:17px 20px;background:#f8fbfb;display:flex;justify-content:space-between;align-items:center}.countdown span{font-size:13px;color:var(--muted)}.countdown strong{font-size:21px;font-variant-numeric:tabular-nums}.level-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #edf2f3;font-size:14px}.level-row>span{display:flex;align-items:center;gap:7px}.direction{font-style:normal;font-size:11px;width:20px;height:20px;display:inline-grid;place-items:center;border-radius:4px}.direction.up{background:#e6f5ed;color:var(--green)}.direction.down{background:#feedef;color:var(--red)}.level-row strong{font-size:18px;font-variant-numeric:tabular-nums}.round-details{padding:10px 20px 0}.round-details>div{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;font-size:12px;padding:5px 0}.round-details span{color:var(--muted);flex-shrink:0}.round-details b{font-weight:500;text-align:right}.small-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:14px}.round-card .small-note{padding:0 20px 17px;margin-top:8px}.empty-inline{padding:20px;color:var(--muted);font-size:14px}.position-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px;padding:18px 20px}.position-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.position-grid strong{font-size:16px}.position-warning{margin:0 20px 18px;padding:10px 14px;font-size:13px;background:#fff7e6;color:#946214;border-radius:5px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{background:#f5f8f9;color:#536f7a;font-size:12px;font-weight:500;text-align:left;padding:12px 18px}td{padding:14px 18px;border-top:1px solid #e6edef;color:#304f59;font-variant-numeric:tabular-nums}tr:hover td{background:#fbfdfd}.empty-cell{text-align:center;padding:35px;color:var(--muted)}td small{display:block;font-size:11px;margin-top:4px}.form-card{padding-bottom:22px}.form-card .card-head{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 24px;padding:0 24px}.form-grid label{font-size:14px;display:flex;flex-direction:column;gap:9px;align-items:stretch}.form-grid small{font-size:12px;line-height:1.6;margin-top:0}.form-card>p,.form-card>button,.form-card>form>p{margin-left:24px;margin-right:24px}.form-card>p{font-size:14px;line-height:1.7;margin-bottom:18px}.form-card>form>p{font-size:13px;line-height:1.7;margin-top:18px}.form-card .small-note{font-size:12px}input,select{border:1px solid #cddadd;border-radius:5px;background:#fff;color:var(--ink);padding:10px 11px;min-height:40px;width:100%;font-size:14px}input:focus,select:focus{outline:2px solid #c5e9e5;border-color:#44a99f}input[readonly]{background:#f6f8f9;color:var(--muted)}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:15px;margin:22px 24px 0;font-size:13px}.form-actions span{margin-right:auto}.switch-label{display:flex;align-items:center;gap:8px;font-size:14px}.switch-label input{width:17px;min-height:17px;height:17px;accent-color:var(--teal)}.rule-note{margin:22px 24px 0;background:#f0f8f7;border:1px solid #d5e9e6;padding:14px 16px;font-size:13px;color:#527b74;line-height:1.8;border-radius:6px}.inline-form{display:flex;align-items:flex-end;gap:16px;padding:22px 24px 0}.inline-form label{display:flex;flex-direction:column;gap:9px;font-size:14px}.inline-form input{max-width:180px}.inline-form .muted{font-size:13px;line-height:1.6}.equity-wrap{height:240px;padding:10px 16px 15px}footer{display:flex;justify-content:space-between;padding:0 30px 20px;font-size:12px;color:#8a9ca3}.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 10%,#dcefeb,transparent 50%),#eef4f4;padding:25px}.login-card{width:430px;max-width:100%;background:#fff;border:1px solid #d7e3e4;border-radius:14px;padding:36px;box-shadow:0 18px 65px #153d3310}.login-card .brand-mark{margin-bottom:20px;width:48px;height:48px}.login-card h1{font-size:28px;margin-bottom:10px}.login-card>p{font-size:14px;color:var(--muted);margin-bottom:28px}.login-card form>label{display:block;font-size:14px;margin-bottom:9px}.login-card .button{width:100%;margin-top:18px;padding:12px}.login-foot{border-top:1px solid var(--line);padding-top:20px;margin-top:18px;color:var(--muted);font-size:12px;line-height:1.7}.error-text{color:var(--red);font-size:13px;min-height:18px;margin-top:12px;line-height:1.6}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:100;background:#173838;color:#fff;padding:13px 23px;border-radius:8px;box-shadow:0 8px 30px #0002;font-size:14px;max-width:90vw;line-height:1.6}.toast.error{background:#9f3445}dialog{border:1px solid var(--line);border-radius:12px;max-width:460px;width:calc(100% - 36px);padding:28px;box-shadow:0 20px 80px #10282930}dialog::backdrop{background:#10282970}dialog h2{font-size:21px;margin-bottom:15px}dialog p{font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:20px}dialog label{font-size:14px;display:flex;flex-direction:column;gap:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:23px}
@media(min-width:1600px){.canvas-wrap{height:355px}.round-details>div{padding:7px 0}.position-grid{padding:22px 20px}.stat-card{padding:22px}}
@media(max-width:1240px){.dashboard-grid{grid-template-columns:minmax(0,1fr) 285px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-legend .legend-up,.chart-legend .legend-down{display:none}.position-grid{grid-template-columns:repeat(3,1fr)}.stats-grid{gap:12px}.stat-card{padding:17px 15px}.stat-card strong{font-size:24px}main{padding:25px 22px}header{padding:0 22px}}
@media(max-width:1000px){.sidebar{width:196px}.shell{margin-left:196px;width:calc(100% - 196px)}.brand{padding:25px 17px}.brand strong{font-size:18px}.dashboard-grid{grid-template-columns:1fr}.round-card{display:none}.stats-grid{grid-template-columns:repeat(2,1fr)}.header-right .clock{display:none}.page-intro{align-items:flex-start}.actions{flex-direction:column}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none}.shell{margin-left:0;width:100%}.menu-toggle{display:block}header{height:65px;padding:0 16px}.header-left{gap:10px}.header-left h1{font-size:19px}.header-right{gap:5px;font-size:12px}main{padding:20px 14px}.page-intro{gap:14px}.page-intro h2{font-size:20px}.page-intro p{font-size:12px}.button{font-size:12px;padding:9px 12px}.stats-grid{gap:10px}.stat-card strong{font-size:23px}.stat-card{min-height:110px;padding:16px 14px}.card-head{padding:16px}.canvas-wrap{height:300px;padding-left:4px}.chart-foot{padding:8px 16px 13px;font-size:11px}.card-head>div:first-child{gap:6px;flex-wrap:wrap}.form-grid{grid-template-columns:1fr;padding:0 18px;gap:19px}.form-actions{margin:20px 18px 0;flex-wrap:wrap}.form-actions span{width:100%}.rule-note{margin:20px 18px 0}.position-grid{grid-template-columns:repeat(2,1fr);padding:17px}.inline-form{padding:20px 18px 0;flex-wrap:wrap}.inline-form .muted{width:100%}footer{padding:0 16px 20px;display:block;line-height:1.8}footer span{display:block}.form-card>p,.form-card>button,.form-card>form>p{margin-left:18px;margin-right:18px}.login-card{padding:28px}.round-card{display:block}.page-intro>.button{white-space:normal;max-width:140px}.chart-legend select{font-size:11px}}

.exit-leg{display:block;margin-top:5px;white-space:nowrap;font-size:11px}.table-wrap td small{display:block;margin-top:4px}

/* Program name fits the sidebar without squeezing the icon. */
.brand .brand-mark{flex-shrink:0}.brand>div:last-child{min-width:0}.brand .brand-name{font-size:16px;line-height:1.45;max-width:5em;overflow-wrap:anywhere}.login-card .program-name{font-size:24px;line-height:1.4}
