:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#17304e;background:#f4f7fb;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 0 0,#e6f5ff 0,transparent 36%),radial-gradient(ellipse at 100% 0,#faf0e2 0,transparent 30%),#f4f7fb;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;border:0;transition:background .15s}button:disabled{opacity:.5;cursor:not-allowed}input,select{color:#26415f;background:#fff;border:1px solid #d1def0;border-radius:9px;padding:10px 12px;min-width:0}input:focus,select:focus,button:focus-visible,summary:focus-visible{outline:2px solid #90c5f7;outline-offset:2px}button,input,select,summary{-webkit-tap-highlight-color:transparent}button svg{vertical-align:middle}p{line-height:1.7}h1,h2,h3,p{margin:0}h2{font-size:16px}h3{font-size:14px}small{display:block;color:#8394ac;font-size:11px;margin-top:4px}code{font-family:ui-monospace,monospace}.app{max-width:1450px;padding:26px 30px 24px;margin:auto}.page-header{text-align:center;position:relative;margin-bottom:26px}.page-header h1{font-size:34px;letter-spacing:3px;font-weight:650;margin-bottom:10px}.page-header p{color:#8a9bb1;font-size:12px}.connection{position:absolute;right:0;top:18px;color:#ad794b;font-size:11px}.connection:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#dca068;margin-right:7px}.connection.online{color:#6e8990}.connection.online:before{background:#4eb19e}.panel{background:#ffffffed;border:1px solid #d3dfef;border-radius:17px;box-shadow:0 15px 30px #263f5910}.date-bar{display:flex;align-items:center;gap:14px;padding:18px 20px;flex-wrap:wrap}.index-history-control{display:flex;align-items:center;gap:8px;font-size:12px;color:#667e9d}.index-history-control select{font-size:12px;padding:10px 8px}.date-label{color:#667e9d}.date-bar input{width:150px;font-size:13px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#fff;background:linear-gradient(105deg,#1673f7,#00a2c9);padding:11px 17px;border-radius:10px;font-weight:600;font-size:13px;box-shadow:0 6px 15px #187cf128}.primary:hover:not(:disabled){background:linear-gradient(105deg,#0861db,#0092b7)}.baseline-hint{margin-left:auto;font-size:11px;color:#90a0b6}.search-area{max-width:680px;margin:21px auto}.picker{position:relative}.search-box{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #d3dfef;border-radius:12px;padding:0 14px;height:45px;color:#91a1b8}.search-box input{width:100%;border:0;background:none;padding:8px 0;font-size:13px;outline:none}.search-box input::placeholder{color:#8b9bb2}.search-menu{position:absolute;top:50px;left:0;right:0;z-index:30;background:#fff;border:1px solid #d3dfef;border-radius:10px;box-shadow:0 10px 30px #203f6224;max-height:280px;overflow:auto}.search-menu button{display:block;text-align:left;background:#fff;width:100%;padding:11px 14px;color:#244567}.search-menu button:hover{background:#f0f6ff}.search-menu p{padding:12px;color:#8295ae}.workspace{display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:20px;align-items:start}.holdings-panel,.portfolio-panel{padding:17px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px;margin-bottom:12px}.section-heading h2 span{font-weight:400;color:#7e90a8;font-size:13px}.section-heading>span{color:#8393ab;font-size:11px;text-align:right}.text-button{background:none;padding:3px 0;color:#2879c8;font-size:12px;display:inline-flex;align-items:center;gap:5px}.text-button:hover{color:#075eb0}.table-scroll{overflow-x:auto;border:1px solid #d5e0f0;border-radius:12px}table{border-collapse:collapse;width:100%;font-size:12px}th{background:#edf3ff;text-align:left;font-weight:600;color:#426184;padding:12px 10px;white-space:nowrap}td{padding:12px 10px;border-bottom:1px solid #eaf0f8;vertical-align:middle;line-height:1.6}tbody tr:last-child td{border-bottom:0}.holdings-table th:first-child{width:48%}.holdings-table th:nth-child(2){width:18%}.holdings-table th:nth-child(3){width:20%}.holdings-table tr.selected>td{background:#f6faff}.fund-name{padding:0;background:none;text-align:left;color:#294768;font-size:12px;line-height:1.6}.fund-name:hover{color:#1376db}.weight{width:74px;padding:8px;font-size:12px}.delete{background:#fcecef;color:#cf4156;border-radius:7px;padding:7px 10px;font-size:12px;white-space:nowrap}.delete:hover{background:#fbdde3}.return-value{white-space:nowrap;color:#277bad}.mapping-toggle{font-size:10px;color:#8194ac;background:none;padding:4px 0 0;display:flex;align-items:center;gap:3px}.notice-row>td{padding:0 9px 10px;border-top:0}.history-note{display:flex;align-items:flex-start;gap:7px;background:#f5f8fc;border-radius:7px;padding:8px 9px;font-size:11px;color:#7187a0;line-height:1.7}.history-note>svg{flex-shrink:0;margin-top:3px}.history-note strong{font-size:11px;font-weight:600}.history-note p{margin-top:3px}.history-note .text-button{font-size:11px;margin-left:5px}.history-note.checking{background:#f5f8fc;color:#8194ac}.history-note.warning,.warning{background:#fff8eb;color:#9e702a}.history-note.filled{background:#eff8f3;color:#4c8065}.share-editor{background:#f7faff;border:1px solid #dce7f4;border-radius:9px;padding:12px;margin-top:10px;font-size:12px}.share-editor>strong{font-size:12px}.share-editor p{font-size:11px;color:#7f92ab;margin:6px 0 10px}.share-editor .search-menu{position:relative;top:5px}.selected-share{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:10px 0}.candidates button{background:#eaf2ff;border:1px solid #d3e2f5;border-radius:7px;color:#3a71aa;padding:8px 10px;text-align:left;margin-bottom:10px;font-size:11px}.index-mapping{margin-top:10px;border-top:1px solid #dde6f1}.index-mapping label{font-size:11px;display:block;margin-top:8px}.index-mapping input{display:block;width:100%;margin-top:6px}.empty-list{padding:24px 0 26px;text-align:center;color:#9caec5}.empty-list p{margin:7px 0;font-size:12px}.weight-total{display:flex;gap:8px;align-items:center;justify-content:flex-end;font-size:12px;color:#8092aa;margin:11px 2px}.weight-total b{color:#397aaa}.weight-total .invalid{color:#cf6d42}.weight-total span{font-size:10px;color:#c77b58}.preview-summary{padding:9px 11px;border-radius:8px;background:#f3f7fc;font-size:11px;color:#6d86a3;line-height:1.8;margin:12px 0}.preview-summary>span{display:inline-block;margin-right:14px}.preview-summary b{font-weight:500}.preview-summary p{margin-top:3px}.single-chart{border:1px solid #d9e5f5;border-radius:13px;padding:13px;margin-top:14px}.single-chart .section-heading{align-items:flex-start}.chart-empty{border:1px dashed #c8daf5;border-radius:11px;background:#f8fbff;display:flex;align-items:center;justify-content:center;text-align:center;color:#7d96b6;padding:25px;font-size:13px;line-height:1.9}.chart{width:100%;min-width:0}.chart-note{font-size:10px;color:#8c9cb2;margin-top:7px}.portfolio-panel{min-width:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 0 18px}.metrics>div{padding:3px 12px;border-right:1px solid #e7edf6}.metrics>div:last-child{border:0}.metrics span{display:block;color:#7d91ae;font-size:11px}.metrics strong{display:block;color:#267eb6;font-size:25px;font-weight:600;margin-top:9px;letter-spacing:-.5px}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#8c9db2;margin:3px 0 8px}.tabs{display:flex;background:#f1f5fb;padding:3px;border-radius:6px}.tabs button{font-size:11px;background:none;color:#899ab2;border-radius:4px;padding:5px 10px}.tabs .active{color:#197bd3;background:#fff;box-shadow:0 1px 3px #243d5a12}.legend{display:flex;justify-content:center;gap:20px;font-size:11px;color:#1685ee}.legend span+span{color:#a4afc3}.result-warnings{background:#fff9ee;border-radius:8px;padding:9px 12px;margin-top:15px;color:#a48650;font-size:11px}.result-warnings p+p{margin-top:5px}.alert{padding:12px 16px;border:1px solid #f0dfbd;border-radius:10px;background:#fff9ed;color:#a27c38;font-size:12px;line-height:1.8;margin-bottom:14px}.alert.error{background:#fff2f2;border-color:#f5d9d9;color:#b35050}.alert button{margin-left:12px}.advanced,.result-details{margin-top:20px;padding:0 18px;box-shadow:0 5px 20px #263f5906}summary{cursor:pointer;color:#4f6e92;font-size:12px;line-height:1.8}details.panel>summary{padding:16px 0;font-size:13px;font-weight:500}summary>span{margin-left:14px;color:#8d9eb4;font-size:11px;font-weight:400}.detail-body{border-top:1px solid #e4ecf6;padding:17px 0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid label{font-size:12px;color:#67819e}.settings-grid select,.settings-grid input{display:block;width:100%;margin-top:9px;font-size:12px}.muted{color:#8c9db3;font-size:11px;margin-top:12px}.detail-body>details{border-top:1px solid #e7eef7;margin-top:15px;padding-top:14px}.detail-body details details{margin:10px}.detail-body details table{margin-top:10px}.detail-body td p+p{margin-top:10px}.detail-scroll{max-height:300px;overflow:auto}.detail-scroll th{position:sticky;top:0}.detail-body .table-scroll{margin-top:10px}.detail-body td b{font-size:11px;font-weight:500}footer{font-size:11px;text-align:center;color:#97a8bd;padding:24px 10px 0;line-height:1.8}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1500px){.app{padding-top:30px}.page-header{margin-bottom:30px}.page-header h1{font-size:38px}}@media(max-width:1000px){.app{padding:22px 20px}.workspace{gap:14px}.holdings-panel,.portfolio-panel{padding:13px}.baseline-hint{display:none}.holdings-table th,.holdings-table td{padding-left:7px;padding-right:7px}.weight{width:62px}.metrics strong{font-size:22px}.section-heading>span{max-width:50%}.connection{position:static;display:block;margin-top:8px}}@media(max-width:760px){.app{padding:22px 14px}.page-header h1{font-size:28px}.page-header{margin-bottom:18px}.date-bar{gap:10px;padding:15px}.date-label{width:100%;font-size:12px}.date-bar input{flex:1;width:0;min-width:110px}.date-bar .primary{width:100%;margin-top:3px}.workspace{grid-template-columns:1fr}.portfolio-panel{min-height:0}.search-area{margin:16px auto}.settings-grid{grid-template-columns:1fr;gap:15px}details.panel>summary>span{display:block;margin-left:13px;font-size:10px}.chart-toolbar{font-size:10px}.section-heading h2{font-size:15px}.metrics strong{font-size:24px}.holdings-table th,.history-note{font-size:11px}.connection{font-size:10px}.metrics{gap:4px}.metrics>div{padding:3px 8px}.result-details .table-scroll{font-size:11px}.preview-summary>span{margin-right:8px}}.catalog-hint{font-size:11px;color:#8c9db3;text-align:center;margin-top:8px;line-height:1.7}.stage-controls{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:5px 0 12px;color:#7b91ad;font-size:11px}.stage-controls label{display:flex;align-items:center;gap:7px}.stage-controls select{padding:5px 7px;font-size:11px;max-width:100%}.stage-controls input{padding:5px 7px;font-size:11px;width:132px}.stage-controls .text-button{font-size:10px}.stage-summary{display:flex;overflow-x:auto;gap:8px;margin:0 10px 0 60px;text-align:center;color:#357ed9}.stage-summary>div{flex:1 0 170px;min-width:170px;padding:5px 0}.stage-summary>div+div{border-left:1px dashed #c9dcf7}.stage-summary span{display:block;font-size:10px;line-height:1.6}.stage-summary strong{display:block;font-size:16px;margin-top:3px}.stage-note{font-size:10px;color:#8c9db3;margin:4px 0 0 60px}@media(max-width:760px){.stage-summary{margin-left:15px;margin-right:0}.stage-summary span{font-size:9px}.stage-summary strong{font-size:14px}.stage-note{margin-left:15px}}.holdings-panel,.return-chart{min-width:0}.stage-summary{max-width:100%}
