:root{--paper:#f6f7f4;--white:#fff;--ink:#202b26;--muted:#78837b;--line:#e5e9e2;--accent:#28634f;--up:#258064;--down:#bc5650;--font:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}body{margin:0;background:var(--paper);font:14px/1.6 var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:7px;padding:8px 13px}button:hover{border-color:#a2b6a6;background:#fafbf8}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--accent);color:white;border-color:var(--accent)}input,select{border:1px solid var(--line);border-radius:6px;padding:9px 11px;background:white;color:var(--ink);min-width:0}button.quiet{border-color:transparent;background:transparent;color:var(--muted)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.04em}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600}.boot{display:grid;place-content:center;min-height:100vh;text-align:center;font-weight:600}.boot span{font-size:12px;color:var(--muted);font-weight:400;margin-top:8px}.sidebar{width:204px;position:fixed;inset:0 auto 0 0;background:#173b32;color:#f5f7f0;padding:30px 18px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:0 12px 38px;font-size:17px;font-weight:600;letter-spacing:.03em}.brand svg{width:25px;height:25px}.brand span small{display:block;font:9px var(--mono);letter-spacing:.19em;opacity:.5;margin-top:1px}.nav{display:grid;gap:6px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:7px;color:#c3d0c5;font-size:13px}.nav a.active{background:#2c5144;color:white}.nav a:hover{background:#25493e}.icon{width:17px;height:17px;display:inline-block;vertical-align:middle;flex-shrink:0}.side-label{margin:30px 14px 8px;color:#93ab99;font-size:10px;letter-spacing:.12em}.watch-nav a{display:flex;justify-content:space-between;padding:8px 14px;font-size:12px;color:#c3d0c5;border-radius:5px}.watch-nav a.active{color:white;background:#25493e}.side-bottom{margin-top:auto;padding:20px 14px 0;color:#9bb0a0;font-size:11px}.side-bottom .status-dot{margin-right:5px}.main{margin-left:204px;padding:0 36px 35px;max-width:1800px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);margin-bottom:30px}.crumb{font-size:12px;color:var(--muted)}.crumb span{color:var(--ink);margin-left:9px}.top-actions{display:flex;align-items:center;gap:14px}.top-actions button{font-size:12px}.stamp{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#5f9d75}.status-dot.stale{background:#c59852}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:24px}.page-title h1{font-size:25px;line-height:1.3;letter-spacing:-.03em;font-weight:600;margin:0 0 7px}.page-title p{color:var(--muted);font-size:12px;margin:0}.periods{display:flex;background:#ecf0e9;padding:3px;border-radius:7px;gap:2px;flex-shrink:0}.periods button{border:0;background:transparent;font-size:11px;color:var(--muted);padding:5px 11px}.periods button.active{background:white;color:var(--ink);box-shadow:0 1px 3px #1b392010}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric{background:white;border:1px solid var(--line);border-radius:9px;padding:21px 22px;min-height:124px}.metric .label{font-size:12px;color:var(--muted);display:flex;justify-content:space-between}.metric .value{font-size:28px;margin:10px 0 5px;line-height:1.15}.metric .unit{font:10px var(--font);letter-spacing:0;color:var(--muted);margin-left:5px}.metric .note{font-size:10px;color:var(--muted)}.metric.hero{background:#eaf0e6;border-color:#d9e2d2}.grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;margin-bottom:22px}.panel{background:white;border:1px solid var(--line);border-radius:9px;min-width:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 23px 0}.panel h2{font-size:14px;font-weight:600;margin:0}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.panel-body{padding:20px 23px}.panel-link{font-size:11px;color:var(--accent);white-space:nowrap}.chart-container{position:relative;height:310px;margin:12px 12px 0 16px}.chart-container.tall{height:455px}.chart-container.compact{height:270px}.chart-note{font-size:10px;color:var(--muted);padding:9px 23px 16px;display:flex;justify-content:space-between;gap:10px}.chart-note a{text-decoration:underline;text-decoration-color:#c5cfc4}.chart-tooltip{position:absolute;left:9px;top:7px;background:#fffffff0;border:1px solid var(--line);border-radius:5px;font:11px/1.7 var(--mono);padding:6px 10px;z-index:4;pointer-events:none;max-width:95%;display:none}.empty{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:43px 20px;min-height:150px;color:var(--muted);gap:6px;font-size:12px}.empty strong{color:#546158;font-size:13px;font-weight:500}.empty-icon{width:33px;height:33px;color:#a8b7a5;margin-bottom:5px}.summary-row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #f0f2ec;font-size:12px;gap:15px}.summary-row:last-child{border-bottom:0}.summary-row>span:first-child{color:var(--muted)}.account-bar{display:flex;height:7px;border-radius:4px;background:#eef2eb;overflow:hidden;margin:17px 0 12px}.account-bar span{background:#679a7b;min-width:0}.tiny-tag{font-size:10px;border-radius:4px;padding:3px 7px;background:#edf3ea;color:#5c7d60;white-space:nowrap;display:inline-block}.tiny-tag.warn{background:#f8f0dd;color:#9b7b36}.tiny-tag.sell{background:#faeeeb;color:var(--down)}.tiny-tag.neutral{background:#eef1ed;color:#728072}.section-gap{margin-bottom:22px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px;text-align:left}th{font-weight:400;color:var(--muted);font-size:10px;padding:12px 20px;border-bottom:1px solid var(--line);background:#fcfdfb}td{padding:15px 20px;border-bottom:1px solid #f0f2ec}tr:last-child td{border-bottom:0}tbody tr[data-record],tbody tr[data-symbol]{cursor:pointer}tbody tr:hover{background:#f7f9f4}.symbol-name{display:flex;align-items:center;gap:10px}.symbol-avatar{height:29px;width:29px;background:#eff3ec;border:1px solid #e4eade;border-radius:7px;color:#627555;font:10px var(--mono);display:grid;place-content:center;flex-shrink:0}.symbol-name strong{display:block;font-size:12px;font-weight:600}.symbol-name small{display:block;font-size:10px;color:var(--muted)}td.right,th.right{text-align:right}.market-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:12px;margin-bottom:22px}.quote{background:white;border:1px solid var(--line);border-radius:7px;padding:13px 15px;min-width:0}.quote:hover,.quote.active{border-color:#7d9f7a;background:#fbfcf7}.quote .quote-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:6px}.quote .price{font-size:19px}.quote .change{font-size:10px;margin-left:7px}.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px}.timeline{padding:10px 23px 18px}.timeline-item{display:flex;gap:13px;padding:15px 0;cursor:pointer;border-bottom:1px solid #f0f2ec}.timeline-item:last-child{border:0}.timeline-point{width:8px;height:8px;margin-top:7px;background:#a4b398;border-radius:50%;flex-shrink:0}.timeline-item .reason{font-size:12px;margin:5px 0;color:#58645b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.timeline-top{display:flex;gap:7px;align-items:center;font-size:11px}.timeline-top time{font-size:10px;color:var(--muted);margin-left:auto}.timeline-content{width:100%;min-width:0}.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:16px}.filters select{font-size:12px;min-width:125px}.journal-count{color:var(--muted);font-size:11px;margin-left:auto;align-self:center}.reason-cell{max-width:280px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.foot{display:flex;justify-content:space-between;color:#8d978c;font-size:10px;margin-top:28px;gap:15px}.alert{background:#fbf6e8;border:1px solid #eadeb9;padding:11px 15px;border-radius:7px;font-size:12px;color:#94733c;margin-bottom:20px;display:flex;align-items:center;gap:10px}.alert.error{background:#fbefed;border-color:#ebd8d1;color:#a85b4c}.chart-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chart-controls button{font-size:10px;padding:4px 9px}.chart-controls button.active{background:#edf3e7;border-color:#a5bb98;color:#47743f}.ma-legend{display:flex;gap:13px;font:10px var(--mono);color:var(--muted);padding:13px 23px 0}.ma7{color:#b89348}.ma25{color:#9d81b2}.ma99{color:#7b9ba6}.drawer-overlay{position:fixed;inset:0;background:#17291d60;z-index:50;backdrop-filter:blur(2px)}.drawer{position:absolute;inset:0 0 0 auto;width:min(540px,100%);background:#fbfcf9;padding:27px 30px;overflow:auto;box-shadow:-10px 0 50px #12271915}.drawer-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:20px}.drawer h2{font-size:20px;margin:4px 0 0}.drawer h3{font-size:12px;font-weight:600;margin:26px 0 10px}.drawer .reason-full{font-size:14px;line-height:1.9;white-space:pre-wrap}.evidence{list-style:none;padding:0;margin:0}.evidence li{padding:11px 0 11px 18px;position:relative;border-bottom:1px solid var(--line);font-size:12px;white-space:pre-wrap}.evidence li:before{content:'·';position:absolute;left:2px;color:var(--accent);font-size:18px}.code-data{font:11px/1.8 var(--mono);white-space:pre-wrap;word-break:break-all;background:#eff2eb;padding:15px;border-radius:6px;color:#5f6a5f}.login{min-height:100dvh;display:grid;grid-template-columns:minmax(300px,.9fr) 1.1fr;background:#fafbf7}.login-art{background:#173b32;display:flex;flex-direction:column;justify-content:space-between;padding:55px 60px;color:#e7eedf;position:relative;overflow:hidden}.login-art .login-brand{font-size:14px;letter-spacing:.13em}.login-art h1{font-size:35px;line-height:1.6;font-weight:400;letter-spacing:.08em;margin:0}.login-art .login-caption{font-size:12px;color:#8fa78e;margin-top:20px}.login-art .login-foot{font:10px var(--mono);letter-spacing:.15em;color:#8fa78e}.art-lines{position:absolute;right:-20px;bottom:110px;width:360px;height:200px;opacity:.1}.login-box{display:grid;place-content:center;padding:35px}.login-form{width:min(330px,78vw)}.login-form h2{font-size:25px;font-weight:500;margin:0 0 9px}.login-form>p{font-size:12px;color:var(--muted);margin:0 0 37px}.login-form label{display:block;font-size:11px;color:#61705e;margin:19px 0 7px}.login-form input{width:100%;background:transparent;padding:12px}.login-form button{width:100%;margin-top:26px;padding:11px}.login-error{color:var(--down);min-height:24px;font-size:12px;margin-top:12px}.login-private{font-size:10px;color:#98a092;margin-top:34px;text-align:center}.key-value{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:20px}.key-value div{padding:13px;background:#f2f5ee;border-radius:5px;min-width:0}.key-value span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.key-value strong{font-size:13px;font-weight:500;word-break:break-word}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:80;background:#213f30;color:#fff;padding:11px 20px;border-radius:7px;font-size:12px;box-shadow:0 4px 20px #0002;display:none;max-width:90vw}.page-loading{padding:100px;text-align:center;color:var(--muted)}.pager{display:flex;justify-content:center;gap:10px;padding:15px}.pager button{font-size:11px}.legend-dot{width:7px;height:7px;border-radius:2px;background:#628868;display:inline-block;margin-right:5px}.balance-label{font-size:10px;font-family:var(--mono);color:var(--muted)}
@media(min-width:1550px){.main{padding-left:55px;padding-right:55px}.chart-container{height:350px}.grid{grid-template-columns:minmax(0,1fr) 340px}}
@media(max-width:1150px){.main{padding:0 22px 25px}.sidebar{width:178px;padding-left:12px;padding-right:12px}.main{margin-left:178px}.metrics{gap:10px}.metric{padding:17px 15px}.metric .value{font-size:24px}.grid{grid-template-columns:minmax(0,1fr) 260px}.market-strip{gap:8px}.quote{padding:12px 10px}.quote .price{font-size:16px}.quote .change{display:block;margin:3px 0 0}.stamp{font-size:10px}.split{grid-template-columns:1fr}.login-art{padding:45px 35px}}
@media(max-width:800px){.sidebar{position:static;width:100%;height:auto;padding:13px 18px;display:flex;flex-direction:row;align-items:center;gap:20px}.brand{padding:0;font-size:14px;flex-shrink:0}.brand span small{font-size:8px}.brand svg{width:22px}.nav{display:flex;margin-left:auto;gap:2px}.nav a{font-size:12px;padding:8px 10px;gap:6px}.nav .icon{display:none}.side-label,.watch-nav,.side-bottom{display:none}.main{margin:0;padding:0 18px 25px}.topbar{height:59px;margin-bottom:23px}.top-actions{gap:9px}.stamp{font-size:10px}.crumb{font-size:11px}.top-actions button{padding:5px 8px;font-size:10px}.page-title h1{font-size:22px}.grid{grid-template-columns:1fr}.grid .panel:last-child .panel-body{padding-top:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:111px}.metric .value{font-size:27px}.panel-head{padding:18px 18px 0}.panel-body{padding:18px}.chart-container{margin-left:9px;margin-right:7px;height:280px}.chart-container.tall{height:365px}.market-strip{overflow:auto;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:112px;padding-bottom:3px}.quote .change{display:inline-block;margin-left:5px}.quote .price{font-size:17px}.chart-note{padding:10px 18px 14px}.timeline{padding-left:18px;padding-right:18px}td,th{padding-left:17px;padding-right:17px}.foot{font-size:9px}.login{grid-template-columns:1fr}.login-art{display:none}.login-box{min-height:100dvh}.drawer{padding:25px 22px}.periods button{padding:5px 9px}.key-value{gap:10px}}
@media(max-width:440px){.brand span small{display:none}.sidebar{gap:8px;padding-left:14px;padding-right:14px}.nav a{font-size:11px;padding:7px 9px}.main{padding-left:13px;padding-right:13px}.page-title{align-items:start}.periods button{font-size:10px;padding:5px 8px}.metric{padding:16px 14px}.metric .value{font-size:24px}.metric .note{font-size:9px}.top-actions .logout{display:none}.stamp{font-size:9px}.page-title p{font-size:11px}.chart-controls{gap:3px}.chart-controls button{padding:4px 7px}.panel-head{gap:8px}.panel h2{font-size:13px}.foot{flex-direction:column;gap:3px}.reason-cell{max-width:170px}}

.fill-hint{display:block;font-size:9px;color:var(--muted);margin-top:3px}
