:root{
  --paper:#edf1ef; --slip:#fbfcfb; --ink:#16252e; --sub:#4a5d68; --line:#c9d3d0; --soft:#e1e9e6;
  --pine:#1c6a53; --on-pine:#fff; --oxide:#a4432b; --on-oxide:#fff; --slate:#3d5c78; --on-slate:#fff; --amber:#8a5a0c;
  --c1:#16252e; --c2:#2f7d67; --c3:#b8802a; --c4:#6b5b95; --c5:#b9cbc4;
  --serif:"Songti SC","Noto Serif SC","Source Han Serif SC",STSong,serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#11191e; --slip:#1a252c; --ink:#e8eef0; --sub:#a9bac2; --line:#33444d; --soft:#22313a;
  --pine:#7fcfb2; --on-pine:#0b2a20; --oxide:#f0a58d; --on-oxide:#3a150a; --slate:#9bc0e0; --on-slate:#0e2231; --amber:#e3b265;
  --c1:#e8eef0; --c2:#7fcfb2; --c3:#e3b265; --c4:#bba9e6; --c5:#4b6058;
}}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);font-variant-numeric:tabular-nums}
h1,h2,h3,p{margin:0}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:9}
:focus-visible{outline:3px solid var(--slate);outline-offset:2px}
button{font:inherit;color:var(--ink);background:var(--slip);border:1px solid var(--line);border-radius:4px;padding:8px 14px;min-height:44px;cursor:pointer}
button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.bar{display:flex;justify-content:space-between;align-items:baseline;gap:12px;max-width:1360px;margin:0 auto;padding:18px 32px 0}
.brand{font:700 24px var(--serif);letter-spacing:.12em}
.bar-note{color:var(--sub);font-size:14px}
main,.foot{max-width:1360px;margin:0 auto;padding:0 32px}
.demo{margin:16px 0 0;padding:9px 14px;background:var(--slate);color:var(--on-slate);font-size:15px;border-radius:3px}
.hero{padding:44px 0 26px;max-width:880px}
.hero h1{font:700 clamp(32px,5.2vw,56px)/1.22 var(--serif);letter-spacing:-.01em}
.lede{margin-top:14px;color:var(--sub);max-width:60ch}
.acct{display:flex;flex-wrap:wrap;gap:6px 38px;padding:16px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.acct div{min-width:120px}.acct span{display:block;font-size:14px;color:var(--sub)}.acct b{font-size:26px;font-weight:600}
.sect-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 20px;margin:34px 0 10px}
h2{font:700 26px var(--serif)}
.note{color:var(--sub);font-size:15px;max-width:70ch}
.seg{display:flex}.seg button{border-radius:0}.seg button:first-child{border-radius:4px 0 0 4px}.seg button:last-child{border-radius:0 4px 4px 0;margin-left:-1px}
.pies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:14px}
.pie{background:var(--slip);padding:18px 20px;display:flex;gap:18px;align-items:center;min-width:0}
.pie svg{flex:none;width:150px;height:150px}
.pie h3{font:600 17px var(--sans);margin-bottom:6px}
.legend{flex:1;min-width:0}.legend button{display:flex;width:100%;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:6px 2px;min-height:40px;font-size:15px}
.legend button[aria-pressed=true]{background:var(--soft);color:var(--ink)}
.legend i{width:12px;height:12px;border-radius:50%;flex:none}
.legend em{margin-left:auto;font-style:normal;white-space:nowrap}.legend small{display:block;color:var(--sub)}
.pie-detail{margin-top:8px;font-size:14px;color:var(--sub);min-height:22px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:start}
.mod{min-width:0}
.slip,.slip-top,.slip-bot{min-width:0;overflow-wrap:anywhere}
.mod>header{padding:10px 14px;display:flex;justify-content:space-between;align-items:baseline;border-radius:4px 4px 0 0}
.mod h3{font:700 21px var(--serif)}
.mod[data-m=add]>header,.mod[data-m=buy]>header{background:var(--pine);color:var(--on-pine)}
.mod[data-m=trim]>header{background:var(--oxide);color:var(--on-oxide)}
.mod[data-m=watch]>header{background:var(--slate);color:var(--on-slate)}
.empty{padding:18px 14px;color:var(--sub);border:1px dashed var(--line);border-top:0}
.slip{background:var(--slip);margin-top:12px;position:relative;filter:drop-shadow(0 1px 0 var(--line))}
.mod header+.slip{margin-top:0;border-radius:0 0 4px 4px}
.slip-top{padding:16px 16px 18px}
.sym{font-size:14px;color:var(--sub)}
.name{font:700 20px var(--serif)}
.qty{display:flex;align-items:baseline;gap:8px;margin:12px 0 2px;color:var(--ink)}
.qty b{font:700 44px/1 var(--serif)}.qty span{font-size:18px}
.price{font-size:17px}.price b{font-size:22px;font-weight:700}
.side-buy{color:var(--pine)}.side-sell{color:var(--oxide)}.side-watch{color:var(--slate)}
.facts{margin:10px 0 0;padding:0;list-style:none;font-size:15px;color:var(--sub)}
.facts li{padding:2px 0}
.stop{margin-top:10px;padding:8px 10px;background:var(--soft);font-size:14px;border-radius:3px}
.perf{height:20px;position:relative;background:
  radial-gradient(circle at 0 50%,var(--paper) 9px,transparent 10px) left/51% 100% no-repeat,
  radial-gradient(circle at 100% 50%,var(--paper) 9px,transparent 10px) right/51% 100% no-repeat}
.perf::after{content:"";position:absolute;left:14px;right:14px;top:50%;border-top:2px dashed var(--line)}
.slip-bot{padding:6px 16px 16px;font-size:15.5px}
.slip-bot h4{margin:8px 0 2px;font-size:14px;color:var(--sub);font-weight:600}
.slip-bot ul{margin:0;padding-left:1.1em}
.counter{border-left:3px solid var(--amber);padding-left:10px;margin-top:2px}
.decide{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.decide button{flex:1 1 auto;padding:6px 10px;font-size:15px}
.status{margin-top:8px;font-size:14px;color:var(--sub)}
details summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}
.mod:has(details[open]){grid-column:1/-1}
.research{padding:10px 0 4px}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px;margin:8px 0 14px}
.metrics div{border-bottom:2px solid var(--line);padding-bottom:6px}.metrics span{font-size:14px;color:var(--sub);display:block}.metrics b{font-size:24px}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14.5px}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}th{color:var(--sub);font-weight:600}
.scn{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.scn-out{padding:12px 14px;background:var(--ink);color:var(--paper);border-radius:3px;margin-bottom:8px}
.scn-out b{font:700 28px var(--serif)}
.plan{margin-top:34px;background:var(--ink);color:var(--paper);padding:22px 24px}
.plan h2{color:inherit}.plan-row{display:flex;flex-wrap:wrap;gap:6px 36px;margin-top:12px}
.plan-row span{display:block;font-size:14px;opacity:.8}.plan-row b{font-size:26px;font-weight:600}
.plan p{margin-top:12px;font-size:15px;opacity:.9;max-width:70ch}
.blocked{margin-top:12px;padding:10px 14px;background:var(--amber);color:#fff;font-size:15px}
.holdings{margin-top:26px}.holdings summary{font:700 20px var(--serif)}
.foot{padding-top:30px;padding-bottom:50px;color:var(--sub);font-size:14px}
@media (max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pies{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  main,.foot,.bar{padding-left:16px;padding-right:16px}.grid{grid-template-columns:minmax(0,1fr)}
  .hero{padding-top:28px}.pie{flex-direction:column;align-items:stretch}.pie svg{align-self:center}
  .acct b{font-size:22px}.qty b{font-size:40px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.slip.excluded .slip-top{opacity:.55}
.slip.excluded .name::after{content:"（已从方案中排除）";font:14px var(--sans);color:var(--sub);margin-left:6px}
.limit{margin-top:10px;border-radius:3px}

.track{margin-top:10px}
.track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:12px 0;border-top:2px solid var(--ink);padding-top:12px}
.track-grid span{display:block;font-size:14px;color:var(--sub)}.track-grid b{font-size:28px;font-weight:600}.track-grid small{display:block;color:var(--sub);font-size:14px}
.verdict{font:700 22px var(--serif);margin:18px 0 6px}.verdict span{font:15px var(--sans);color:var(--sub)}
.track label{font-size:15px;color:var(--sub)}.track select{font:inherit;color:var(--ink);background:var(--slip);border:1px solid var(--line);border-radius:4px;padding:8px 10px;min-height:44px}
@media (max-width:640px){.track-grid{grid-template-columns:minmax(0,1fr)}}

button.quiet{min-height:36px;padding:4px 10px;font-size:14px;background:none;color:var(--sub)}
.legend-wrap{flex:1;min-width:0}

.nav{display:flex;gap:6px;max-width:1360px;margin:6px auto 0;padding:0 32px;flex-wrap:wrap}
.nav a{color:var(--sub);text-decoration:none;padding:10px 12px;border-bottom:3px solid transparent;font-weight:600}
.nav a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}
.settings fieldset,#v-watchlist fieldset{border:1px solid var(--line);margin:18px 0;padding:14px 18px;background:var(--slip);min-width:0}
legend{font:700 20px var(--serif);padding:0 8px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 24px}
.field{margin:8px 0;min-width:0}.field label{display:block;font-size:15px;color:var(--sub)}
.field input[type=text],.field select,.wl-add input,.wl-add select{display:block;width:100%;margin-top:4px;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:8px 10px;min-height:44px}
.field small{display:block;color:var(--sub);font-size:13.5px}
.err{display:block;color:var(--oxide);font-size:14px;min-height:0}.err:empty{display:none}
.check{display:flex;gap:10px;align-items:center;min-height:44px;font-size:16px}.check input{width:20px;height:20px}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.banner{padding:10px 14px;background:var(--soft);border-left:4px solid var(--pine);margin:12px 0}
.banner.bad{border-left-color:var(--oxide)}
.loose{color:var(--oxide);font-size:14.5px}
.wl-add{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}
.wl-row{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.wl-id{font-weight:700;min-width:96px}
@media (max-width:640px){.nav{padding:0 16px}.grid2,.grid3{grid-template-columns:minmax(0,1fr)}.wl-add{grid-template-columns:minmax(0,1fr)}}

.gen{margin-top:14px}.gen button{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ins{background:var(--slip);padding:18px 20px;margin:14px 0;border-top:3px solid var(--ink)}
.ins-head{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}.ins-head h3{font:700 22px var(--serif)}
td.derived{font-style:italic}td.miss{color:var(--oxide)}

.consent{background:var(--soft);padding:10px 14px;margin:8px 0;font-size:15.5px}.consent ul{margin:6px 0 2px;padding-left:1.2em}
.code{font:700 28px var(--serif);letter-spacing:.12em;margin:0 6px}
.layers{padding-left:1.2em}.layers li{margin:4px 0}
