:root{--blue:#2059e8;--ink:#19212d;--muted:#808897;--line:#e7ebf1;--side:#f5f7fb;--positive:#dc4050;--negative:#21815d;--radius:6px;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0;background:#fff}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce1e9;border-radius:var(--radius);background:white;color:var(--ink);padding:9px 14px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}button:hover{background:#f5f7fb;border-color:#b9c7e0}button:disabled{opacity:.48;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #a9c1ff;outline-offset:3px}a{color:var(--blue);text-decoration:none}input,select,textarea{padding:10px 12px;border:1px solid #d9dfe8;border-radius:var(--radius);background:white;color:var(--ink);min-width:0}textarea{resize:vertical;min-height:88px;line-height:1.7}input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}input::placeholder,textarea::placeholder{color:#a1a8b3}select{min-height:40px}h1,h2,h3,p{margin:0}h1{font-size:29px;line-height:1.3;letter-spacing:-.6px}h1,h2{font-weight:650}h2{font-size:19px;letter-spacing:-.3px}h3{font-size:16px;font-weight:600}p{line-height:1.75}small{display:block;font-size:12px;font-weight:400;line-height:1.65}.muted,small{color:var(--muted)}.positive{color:var(--positive)!important}.negative{color:var(--negative)!important}.error{color:#b92a40!important}.warning{color:#97630b}.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:550;padding:11px 18px}.primary:hover{background:#1348cb;border-color:#1348cb}.text-btn{border:0;background:transparent;color:var(--blue);padding:4px 0;font-size:13px}.text-btn:hover{background:transparent;color:#123fa9}.icon-btn{border:0;background:transparent;padding:5px;color:var(--muted)}.app-shell{min-height:100vh}.sidebar{width:238px;position:fixed;inset:0 auto 0 0;background:var(--side);padding:34px 16px 18px;display:flex;flex-direction:column;z-index:20}.wordmark{font-size:28px;font-weight:750;letter-spacing:-1.2px;color:#122137}.sidebar .wordmark{padding:0 16px;margin-bottom:40px}.sidebar nav{display:flex;flex-direction:column;gap:14px}.sidebar nav button{position:relative;justify-content:flex-start;padding:15px 18px;gap:15px;background:transparent;border:0;font-size:16px;color:#4b5361;border-radius:7px}.sidebar nav button:hover{background:#eaf0fa}.sidebar nav button.active{background:#e2eafa;color:#174dcf;font-weight:600}.sidebar nav i{font-size:10px;font-style:normal;background:#e5eafa;border-radius:4px;padding:1px 5px;margin-left:auto;color:var(--blue)}.sidebar-foot{margin-top:auto;padding-top:35px}.connection{border-top:1px solid #dfe5ee;padding:20px 12px 15px;font-size:12px;color:#6f7787;display:flex;align-items:center;gap:9px}.status-dot{display:inline-block;flex:0 0 auto;width:7px;height:7px;background:#5d85c7;border-radius:50%}.status-dot.warn{background:#c68a33}.profile{width:100%;border:0;background:transparent;padding:5px;justify-content:flex-start;text-align:left;gap:11px}.profile>svg{margin-left:auto}.profile strong{font-size:14px;font-weight:500}.avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:#e2e7f4;color:#586d91;font-size:13px}.main{margin-left:238px;padding:40px 28px;max-width:2000px}.page-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;min-height:102px}.page-header p{margin-top:10px;color:#6c7481;font-size:14px}.header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.header-controls{display:flex;gap:10px;align-items:center}.header-controls select:first-child{max-width:180px;min-width:145px}.badge{font-size:11px;padding:3px 7px;color:var(--blue);border:1px solid #cddafa;border-radius:4px}.freshness{display:flex;align-items:center;justify-content:flex-end;color:#9299a5;font-size:12px;margin:4px 0 15px;gap:7px}.metrics{display:grid;grid-template-columns:1.5fr 1.1fr .8fr 1.6fr;gap:25px;padding:10px 0 22px;border-bottom:1px solid var(--line)}.metrics>div>span{display:flex;align-items:center;gap:7px;color:#747b86;font-size:13px;min-height:25px}.metrics strong{font-size:30px;font-weight:450;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:block;margin-top:12px;letter-spacing:-.6px}.metrics .main-metric strong{font-size:39px;font-weight:500;letter-spacing:-1.1px}.chart-section{margin-top:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;min-height:31px}.section-heading h2 small{display:inline;font-size:11px;margin-left:7px}.segments{display:flex;gap:12px}.segments button{border:1px solid transparent;color:#828a98;font-size:13px;background:transparent;padding:5px 10px}.segments button.selected{border-color:#b9cdfb;color:var(--blue);background:#f8faff}.chart{height:248px;width:100%}.overview-bottom{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr);gap:28px;margin-top:26px}.pending{border-left:1px solid var(--line);padding-left:26px}.pending-row{position:relative;display:block;text-align:left;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:18px 0 22px;background:transparent}.pending-row .stock-icon{width:36px;height:36px}.pending-row .stock strong{font-size:15px}.pending-row .stock small{display:none}.pending-row>small{margin:9px 0 0 48px;color:var(--blue);font-size:12px}.pending-date{float:right;display:block;font-size:12px;color:var(--muted);margin:-25px 0 0 48px}.stock{display:flex;align-items:center;gap:11px;min-width:0}.stock strong{display:block;font-size:14px;font-weight:500;white-space:nowrap}.stock small{font-size:11px;white-space:nowrap;margin-top:3px}.stock-icon{width:34px;height:34px;background:#e7efff;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#3c72d4;flex-shrink:0}.market-SH{background:#fce9e9;color:#c65d62}.market-US{background:#edf0f5;color:#636e7e}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:12px;color:#858c98;font-weight:450;padding:13px 10px 13px 0;border-bottom:1px solid #dce3ec}td{font-size:13px;padding:17px 10px 17px 0;border-bottom:1px solid var(--line);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}td:last-child,th:last-child{padding-right:0}.num{text-align:right}td .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.holdings-table td{padding-top:15px;padding-bottom:15px}.holdings-table .stock strong{font-size:15px}.holdings-table .stock{gap:8px}.holdings-table th{font-size:13px}.holdings-table td{font-size:14px;padding-top:12px;padding-bottom:12px}.clickable{cursor:pointer}.clickable:hover{background:#fafcff}.toolbar{display:flex;align-items:center;gap:12px;margin:18px 0 22px}.toolbar input:not([type=checkbox]){width:285px}.spacer{flex:1 1}.pill{display:inline-flex;align-items:center;font-size:11px;padding:4px 7px;background:#f0f3f8;color:#6c7789;border-radius:4px}.pill.buy{background:#fff0f0;color:#c75460}.pill.sell{background:#eaf5ef;color:#39845e}.status-label{border:0;background:transparent;color:#af8335;font-size:12px;padding:3px}.status-label.done{color:#468569}.section-spaced{margin-top:38px}.section-spaced>h2{margin-bottom:20px}.footnote{font-size:12px;color:#8b93a1;margin-top:15px;line-height:1.8}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.account-card{padding:22px;border:1px solid var(--line);border-radius:7px}.account-card>div{display:flex;align-items:center;gap:10px;margin-bottom:20px}.account-card p{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin:8px 0}.account-card p strong{font-size:19px;font-weight:500;color:var(--ink)}.account-card .text-btn{margin-top:15px}.journal-list{border-top:1px solid var(--line)}.journal-item{padding:24px 0;border-bottom:1px solid var(--line)}.journal-item .section-heading{justify-content:flex-start}.journal-item .pill{margin-left:auto}.journal-columns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:35px;padding:20px 0 18px 45px}.journal-columns p{font-size:14px;margin-top:7px;white-space:pre-wrap}.journal-footer{display:flex;justify-content:space-between;align-items:center;padding-left:45px}.analysis-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:26px 0;border-bottom:1px solid var(--line)}.analysis-metrics strong{font-size:34px;font-weight:450;display:block;margin-top:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report{border-top:1px solid var(--line);padding:24px 0}.report>p{margin-top:15px}.observation{padding:18px 0 15px;border-bottom:1px solid var(--line);line-height:1.7}.observation p{margin-top:5px}.observation .text-btn{margin:8px 20px 0 0}.improvement{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:18px;background:#f7f9fc;margin-top:12px}.improvement strong{font-size:13px;font-weight:500}.improvement small{margin-top:5px}.settings-section{display:grid;grid-template-columns:1fr 1.6fr;gap:70px;border-bottom:1px solid var(--line);padding:25px 0 32px}.settings-section>div>svg{color:#7a91b6;margin-bottom:10px}.settings-section h2{margin-bottom:9px}.settings-section>div>p{color:var(--muted);font-size:13px;max-width:360px}.settings-content p{line-height:1.8;margin-bottom:15px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid #eff2f6}.setting-row:last-child{border-bottom:0}.setting-row small{margin-top:4px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.status-line{display:flex;align-items:center;gap:10px;margin-bottom:20px}.status-line button{margin-left:auto}.job-result{white-space:normal;max-width:430px}.notice{margin:15px 0 24px;display:flex;align-items:center;gap:12px;border:1px solid #dfe8f9;background:#f8faff;color:#637797;padding:15px 18px;border-radius:6px;font-size:13px;line-height:1.65}.notice button{margin-left:auto;border:0;background:transparent;color:var(--blue)}.notice svg{flex-shrink:0}.data-warning{background:#fffcf5;border:1px solid #f0e8d8;padding:12px 16px;border-radius:6px;margin-bottom:15px;color:#90733e;font-size:12px}.data-warning summary{display:flex;align-items:center;gap:8px;cursor:pointer}.data-warning p{margin:8px 0 0 25px}.empty{text-align:center;padding:52px 22px;color:#9aa3b1;white-space:normal}.empty h3{font-size:14px;margin:13px 0 7px;font-weight:500;color:#788496}.empty p{font-size:12px;color:#9aa3b1}.empty button{margin-top:15px}.quiet-empty{text-align:center;padding:48px 10px;color:#91a3bb;font-size:13px}.quiet-empty p{margin-top:10px}.quiet-empty small{margin-top:5px}.loading{display:flex;justify-content:center;align-items:center;gap:14px;padding:150px 0;color:#8c96a5}.spinner{width:18px;height:18px;border:2px solid #e0e8f9;border-top:2px solid var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{background:#fafbfe}.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#172536;color:#fff;box-shadow:0 7px 30px #1b324822;border-radius:7px;padding:14px 18px;z-index:100;display:flex;align-items:center;gap:20px;max-width:90vw;font-size:13px}.toast button{border:0;background:transparent;color:white;padding:0}dialog{border:1px solid var(--line);padding:0;border-radius:12px;width:min(620px,calc(100vw - 28px));max-height:90vh;overflow:auto;color:var(--ink);box-shadow:0 20px 90px #17263822}dialog::backdrop{background:rgba(20,31,51,.28);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;padding:23px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:1}.modal-heading h2{font-size:19px}.modal-body{padding:24px 26px}.form fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:17px}.form label,.import-modal>label,.mapping-grid label{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#69778b;line-height:1.5}.form input,.form select,.form textarea{width:100%;font-size:14px}.form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form .inline-label,.inline-label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:13px;color:#6e7d91}.form .inline-label input{width:16px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:23px;margin-top:5px}.form>.error{margin-top:15px}.optional-notes{padding-top:15px;border-top:1px solid var(--line)}.optional-notes summary{cursor:pointer;color:var(--blue);font-size:13px}.optional-notes label{margin-top:15px}.details{font-size:13px}.details>div{display:grid;grid-template-columns:100px 1fr;padding:11px 0;border-bottom:1px solid var(--line)}.details dt{color:var(--muted)}.details dd{margin:0;overflow-wrap:anywhere}.history-row{font-size:12px;color:var(--muted);margin-top:12px}.import-modal{min-width:0}.import-modal>.muted{margin-bottom:20px}.mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:20px 0}.import-preview{max-height:260px;overflow:auto;margin:17px 0}.import-preview th{position:sticky;top:0;background:white}.import-preview td{padding:10px 12px 10px 0;font-size:12px}.import-preview td:last-child{white-space:normal;min-width:130px}.menu-backdrop,.mobile-menu{display:none}.login{min-height:100vh;position:relative;padding:35px 55px}.login .wordmark{position:relative;z-index:2}.login .wordmark span{color:var(--blue)}.login-form{max-width:360px;margin:110px auto 0;transform:translateX(-65%)}.eyebrow{font-size:12px;color:#7285a2;letter-spacing:1px}.login-form h1{font-size:37px;line-height:1.5;margin:17px 0 13px;letter-spacing:-1px}.login-form>p{color:var(--muted);font-size:13px}.login-form form{display:flex;flex-direction:column;gap:20px;margin-top:34px}.login-form label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#67758b}.login-form input{padding:13px}.login-form .primary{width:100%;margin-top:5px}.login-form>small{margin-top:28px;font-size:11px}.demo-link{display:block;text-align:center;margin-top:22px;font-size:13px}.login-aside{position:absolute;inset:0 0 0 57%;background:#f3f6fc;display:flex;justify-content:center;flex-direction:column;padding:8%}.login-quote{font-size:30px;line-height:1.8;color:#4a6289;letter-spacing:-.5px}.login-aside p{margin-top:30px;color:#98a7bd;font-size:12px}@media (min-width:1600px){.main{padding-left:45px;padding-right:45px}.chart{height:310px}.overview-bottom{margin-top:35px}.pending-date{float:right;margin-top:-25px}.metrics{padding-bottom:35px}}@media (max-width:1200px){.sidebar{width:200px}.main{margin-left:200px;padding:28px 23px}.sidebar nav button{padding:13px;gap:10px}.metrics{grid-template-columns:1.8fr 1fr 1fr;gap:20px}.metrics>div:last-child{display:none}.metrics .main-metric strong{font-size:31px}.metrics strong{font-size:25px}.overview-bottom{grid-template-columns:minmax(0,1fr)}.pending{border-left:0;padding:25px 0 0;border-top:1px solid var(--line)}.pending-row{display:inline-block;width:48%;margin-right:2%}.header-controls select:first-child{min-width:115px}.header-controls{gap:7px}.page-header{gap:10px}.page-header p{max-width:320px}.settings-section{gap:30px}}@media (max-width:800px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:230px}.sidebar.is-open{transform:translateX(0)}.main{margin-left:0;padding:22px 18px}.mobile-menu{display:inline-flex;float:left;margin:0 9px 0 -4px;color:#495c7a}.menu-backdrop{display:block;position:fixed;inset:0;background:#1a27484d;z-index:19;border:0;border-radius:0}.page-header{flex-direction:column;gap:20px;min-height:130px}.page-header h1{font-size:25px}.page-header p{max-width:none;font-size:12px;margin-top:10px}.header-actions{width:100%;flex-direction:row-reverse;align-items:center}.header-controls{width:100%;gap:7px;flex-wrap:wrap}.header-controls select{font-size:12px}.header-controls select:first-child{flex:1 1}.header-controls .primary{padding:10px 12px;font-size:12px}.header-actions .badge{display:none}.freshness{font-size:10px;margin-top:15px}.metrics{grid-template-columns:1.7fr 1fr;padding-top:10px;padding-bottom:22px;gap:15px}.metrics>div:nth-child(3){display:none}.metrics>div>span{font-size:11px}.metrics .main-metric strong{font-size:27px}.metrics strong{font-size:23px}.chart-section{margin-top:21px}.chart{height:230px}.segments{gap:3px}.segments button{font-size:11px;padding:5px 8px}h2{font-size:17px}.section-heading h2 small{font-size:10px}.overview-bottom{margin-top:20px;gap:12px}.holdings-table{min-width:560px}.toolbar{flex-wrap:wrap}.toolbar input:not([type=checkbox]){width:auto;flex:1 1}.toolbar .spacer{display:none}.pending-row{display:block;width:100%}.pending-date{float:right;margin-top:-24px}.settings-section{grid-template-columns:1fr;gap:20px}.settings-section>div>p{max-width:none}.journal-columns{grid-template-columns:1fr;padding-left:0;gap:18px}.journal-footer{padding-left:0}.journal-item .section-heading{flex-wrap:wrap}.journal-item .section-heading .muted{font-size:11px}.analysis-metrics{grid-template-columns:1fr 1fr;gap:25px}.analysis-metrics strong{font-size:29px}.modal-body{padding:21px}.modal-heading{padding:19px 21px}.notice{flex-wrap:wrap;font-size:12px;padding:13px}.login{padding:25px}.login-form{transform:none;margin:65px auto 0;max-width:360px}.login-aside{display:none}.login-form h1{font-size:32px}.table-wrap table{min-width:550px}.report .section-heading{flex-wrap:wrap}.improvement{align-items:flex-start}.form .form-grid{grid-template-columns:1fr;gap:12px}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.mapping-grid{gap:10px}dialog{max-height:93vh}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.snapshot-json{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:55vh;overflow:auto;padding:15px;background:#f7f9fc}.export-link{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;padding:8px 12px}.clickable:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.journal-history{margin:15px 0 0 45px;font-size:12px;color:var(--muted)}.journal-history summary{cursor:pointer;color:var(--blue)}.journal-history>div{padding:12px 0;border-top:1px solid var(--line);margin-top:10px}.journal-history p{white-space:pre-wrap}@media (max-width:800px){.journal-history{margin-left:0}}