:root{--ink:#1f2937;--sub:#6b7280;--line:#e5eaf2;--bg:#f4f6fb;--card:#fff;--blue:#1f3864;--blue2:#2f5597;--gold:#f0b94d;--up:#d64545;--down:#1a9e61;--input:#fff8e6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Microsoft YaHei,微软雅黑,system-ui,-apple-system,sans-serif;font-size:14px}button{font-family:inherit}.shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:linear-gradient(#16294a 0%,#1f3864 60%,#24406f 100%);flex-direction:column;flex:none;width:232px;height:100vh;padding:22px 14px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{border-bottom:1px solid #ffffff24;align-items:center;gap:12px;padding:0 8px 18px;display:flex}.brand .logo{background:#ffffff1f;border-radius:12px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.brand h1{letter-spacing:1px;font-size:17px;font-weight:700}.brand p{color:#c7d3ea;letter-spacing:.5px;margin-top:3px;font-size:11px}.content{flex:1;min-width:0;padding:24px 28px 40px}.btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;padding:7px 14px;font-size:13px;transition:all .15s}.btn:hover{border-color:var(--blue2);color:var(--blue2)}.btn:disabled{opacity:.55;cursor:wait}.btn.ghost{color:#fff;background:#ffffff1a;border-color:#ffffff59}.btn.ghost:hover{color:#fff;background:#ffffff38}.btn.primary{background:var(--blue2);border-color:var(--blue2);color:#fff;font-weight:600}.btn.primary:hover{color:#fff;background:#264a85}.btn.warn{color:#b91c1c;background:#fff;border-color:#f3c1c1}.btn.warn:hover{background:#fdf0f0}.btn.sm{border-radius:6px;padding:3px 10px;font-size:12px}.issue{color:#b91c1c;font-size:12px}nav.tabs{flex-direction:column;gap:4px;margin:16px 0;display:flex}nav.tabs button{text-align:left;color:#c7d3ea;cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;border-radius:8px;padding:10px 14px;font-size:14px;transition:all .15s}nav.tabs button:hover{color:#fff;background:#ffffff14}nav.tabs button.active{color:#fff;border-left-color:var(--gold);background:#ffffff1f;font-weight:700}.maintenance-fold{justify-content:flex-end;margin-top:4px;display:flex}.maintenance-toggle{border:1px dashed var(--line);color:var(--sub);cursor:pointer;background:0 0;border-radius:8px;padding:4px 12px;font-size:12px}.maintenance-toggle:hover{color:var(--ink);border-color:var(--sub)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:16px;padding:20px 22px;box-shadow:0 1px 4px #1f38640d}.card h3{color:var(--blue);align-items:center;gap:8px;margin-bottom:14px;font-size:15px;display:flex}.card h3:before{content:"";background:var(--gold);border-radius:2px;flex:none;width:4px;height:15px;display:inline-block}.overview-bar{color:#fff;background:linear-gradient(120deg,#16294a,#2f5597);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 20px;display:flex;box-shadow:0 4px 14px #1f38642e}.obar-dates{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.obar-item{flex-direction:column;gap:2px;display:flex}.obar-lb{color:#aebfdd;letter-spacing:1px;font-size:11.5px}.obar-vl{font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.obar-sep{background:#ffffff38;width:1px;height:26px}.obar-help{color:#f0b94d;background:#f0b94d29;border:1px solid #f0b94d8c;font-weight:600}.obar-help:hover{color:#f7cd7c;background:#f0b94d47;border-color:#f0b94d}.empty-guide{background:#f7f9fe;border:1px dashed #b9c6dd;margin-bottom:16px}.empty-guide h3{color:var(--blue)}.empty-guide p{margin:6px 0}.empty-guide ul{margin:6px 0 2px;padding-left:22px;line-height:1.9}.report-head{margin-bottom:16px}.report-head h2{color:var(--blue);letter-spacing:1px;font-size:20px}.report-head p{color:var(--sub);margin-top:4px;font-size:12.5px}.hero{grid-template-columns:1.35fr 2fr;gap:16px;margin-bottom:16px;display:grid}.hero-main{color:#fff;background:linear-gradient(150deg,#16294a,#2f5597);border-radius:14px;flex-direction:column;justify-content:center;padding:26px 28px;display:flex;box-shadow:0 6px 18px #1f386438}.hero-main .lb{color:#c7d3ea;letter-spacing:1px;font-size:13px}.hero-main .vl{font-variant-numeric:tabular-nums;letter-spacing:.5px;margin:8px 0 10px;font-size:42px;font-weight:700}.hero-main .sb{color:#aebfdd;font-size:12.5px}.hero-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mini{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;justify-content:center;padding:16px 18px;display:flex;box-shadow:0 1px 4px #1f38640d}.mini .lb{color:var(--sub);font-size:12.5px}.mini .vl{font-variant-numeric:tabular-nums;margin-top:6px;font-size:21px;font-weight:700}.up{color:var(--up)}.down{color:var(--down)}.help-tip{width:15px;height:15px;color:inherit;opacity:.65;cursor:help;vertical-align:middle;outline-offset:2px;border:1px solid;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;font-size:10px;line-height:1;display:inline-flex;position:relative}.help-tip:hover{opacity:1}.help-tip:focus-visible{opacity:1;outline:2px solid var(--accent,#2f5597)}.help-tip:after{content:attr(data-tip);color:#eaf0fb;letter-spacing:0;text-align:left;opacity:0;visibility:hidden;pointer-events:none;z-index:60;background:#1d2b4a;border-radius:8px;width:max-content;max-width:230px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.55;transition:opacity .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0f192d59}.help-tip:before{content:"";opacity:0;visibility:hidden;pointer-events:none;z-index:60;border:6px solid #0000;border-top-color:#1d2b4a;border-bottom:none;transition:opacity .12s;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.help-tip:hover:after,.help-tip:focus-visible:after,.help-tip:hover:before,.help-tip:focus-visible:before{opacity:1;visibility:visible}.chart{width:100%;height:auto;display:block}.chart text.ax{fill:#8a94a6;font-family:inherit;font-size:11px}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.empty{color:var(--sub);text-align:center;padding:40px 0}.trend-chart{position:relative}.chart-tooltip{color:#fff;pointer-events:none;white-space:nowrap;z-index:2;background:#16294a;border-radius:8px;flex-direction:column;gap:2px;padding:5px 10px;font-size:12px;display:flex;position:absolute;top:0;transform:translate(-50%)}.chart-tooltip strong{color:var(--gold);font-variant-numeric:tabular-nums;font-size:14px}.chart-gridline{stroke:#e8edf5}.chart-line{stroke:#2f5597;stroke-width:2.5px;fill:none;stroke-linejoin:round}.chart-point{fill:#fff;stroke:#2f5597;stroke-width:2px}.chart-hitbox{fill:#0000}.chart-label{fill:#8a94a6;font-size:11px}.chart-label-end{text-anchor:end}.chart-empty{color:var(--sub);text-align:center;padding:60px 0}.chart-crosshair{stroke:#9fb0cc;stroke-dasharray:3 3}.range-tabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:inline-flex}.range-tab{border:1px solid var(--line);color:var(--sub);cursor:pointer;background:#f5f7fb;border-radius:6px;padding:3px 10px;font-size:12px;transition:all .15s}.range-tab:hover{border-color:var(--blue2);color:var(--blue2)}.range-tab.active{background:var(--blue2);border-color:var(--blue2);color:#fff;font-weight:600}.readonly-badge{border:1px solid var(--gold);color:var(--gold);letter-spacing:1px;border-radius:10px;margin-top:6px;padding:1px 8px;font-size:11px;display:inline-block}.preview-banner{z-index:5;color:#6b5416;background:#fff8e6;border:1px solid #e8c96d;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #1f386414}.preview-banner-flag{background:var(--gold);color:#4a3808;letter-spacing:1px;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:700}.preview-banner-text{flex:1;min-width:160px}.preview-banner select{color:#6b5416;cursor:pointer;background:#fff;border:1px solid #d9bd6a;border-radius:6px;padding:4px 8px;font-size:13px}.preview-banner .btn{flex-shrink:0}.cal{border-collapse:collapse;width:100%;font-size:12px}.cal th,.cal td{border:1px solid var(--line);text-align:center;min-width:40px;padding:4px 2px}.cal th{color:#3d4a63;background:#f0f4fa;font-weight:600}.cal td.cup{color:#b02a2a;background:#fdeaea;font-weight:600}.cal td.cdown{color:#0f7a4b;background:#e6f5ee;font-weight:600}.tbl-scroll{overflow-x:auto}table.tb{border-collapse:collapse;width:100%;font-size:13px}.tb th{color:#3d4a63;border-bottom:2px solid var(--line);white-space:nowrap;text-align:center;background:#f0f4fa;padding:9px 10px;font-weight:600}.tb td{border-bottom:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;padding:8px 10px}.tb th.num,.tb td.num{text-align:right}.tb tr:hover td{background:#f8fafd}.tb tfoot td{background:#eef2f9;border-top:2px solid #d7dfec;font-weight:700}.badge{border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.badge.buy{color:var(--up);background:#fdf0f0}.badge.sell,.badge.flow-in{color:var(--down);background:#e9f7f0}.badge.flow-out{color:var(--up);background:#fdf0f0}.badge.val{color:var(--blue2);background:#eef2fa}.muted{color:var(--sub);font-size:12px}.note-cell{text-overflow:ellipsis;max-width:180px;color:var(--sub);font-size:12px;overflow:hidden}.tbl-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tbl-toolbar .range-tabs{margin-bottom:0}.tbl-toolbar .range-tab{align-items:center;height:32px;padding:0 14px;display:inline-flex}.tbl-toolbar select{border:1px solid var(--line);height:32px;color:var(--ink);background:#fff;border-radius:8px;padding:0 10px;font-family:inherit;font-size:13px}.tbl-toolbar select:focus{border-color:var(--blue2);outline:none;box-shadow:0 0 0 2px #2f55971f}.tbl-toolbar input{border:1px solid var(--line);height:32px;color:var(--ink);background:#fff;border-radius:8px;padding:0 10px;font-family:inherit;font-size:13px}.tbl-toolbar input:focus{border-color:var(--blue2);outline:none;box-shadow:0 0 0 2px #2f55971f}.tf{color:var(--sub);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tf-toggle{border:1px solid var(--line);height:32px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.tf-toggle:hover{border-color:var(--blue2);color:var(--blue2)}.tf-toggle.on{border-color:var(--blue2);color:var(--blue2);background:#eef2fa;font-weight:600}.tf-toggle input{accent-color:var(--blue2);margin:0}.tbl-toolbar .btn.sm{height:32px;padding:0 12px}.th-sort{all:unset;cursor:pointer;font:inherit;color:inherit;font-weight:inherit;align-items:center;gap:4px;display:inline-flex}.th-sort:hover{color:var(--blue2)}.th-sort:focus-visible{outline:2px solid var(--blue2);outline-offset:2px;border-radius:4px}.th-sort .sort-ind{color:#b6c2d6;font-size:10px;line-height:1}.th-sort .sort-ind.on{color:var(--blue2)}.tbl-scroll .tb th.sticky-col,.tbl-scroll .tb td.sticky-col{z-index:1;box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl-scroll .tb td.sticky-col{background:#fff}.tbl-scroll .tb tr:hover td.sticky-col{background:#f8fafd}.tbl-scroll .tb tfoot td.sticky-col{background:#eef2f9}.tbl-scroll .tb th.sticky-col{z-index:2;background:#f0f4fa}.tbl-scroll .tb th.sticky-col-2,.tbl-scroll .tb td.sticky-col-2{z-index:1;box-shadow:1px 0 0 var(--line);position:sticky;left:34px}.tbl-scroll .tb td.sticky-col-2{background:#fff}.tbl-scroll .tb tr:hover td.sticky-col-2{background:#f8fafd}.tbl-scroll .tb th.sticky-col-2{z-index:2;background:#f0f4fa}.batch-tb th.sticky-col:first-child,.batch-tb td.sticky-col:first-child{box-sizing:border-box;width:34px;min-width:34px}.tbl-empty-note{text-align:center;color:var(--sub);padding:18px 0 6px;font-size:13px}.tbl-empty-note .btn.sm{margin-left:8px}.month-nav{align-items:center;gap:8px;display:flex}.month-label{color:var(--blue);text-align:center;font-variant-numeric:tabular-nums;min-width:96px;font-size:14px;font-weight:700}.month-pick{min-width:112px;color:var(--blue);text-align:center;font-weight:700}.month-nav-btn{border:1px solid var(--line);width:32px;height:32px;color:var(--sub);cursor:pointer;background:#fff;border-radius:8px;padding:0;font-size:11px;line-height:1}.month-nav-btn:hover:not(:disabled){border-color:var(--blue2);color:var(--blue2)}.month-nav-btn:disabled{opacity:.4;cursor:not-allowed}.month-summary{border:1px solid var(--line);color:var(--sub);background:#f7f9fe;border-radius:10px;flex-wrap:wrap;gap:26px;margin-bottom:12px;padding:10px 16px;font-size:13px;display:flex}.month-summary .ms-item{align-items:baseline;gap:6px;display:flex}.month-summary strong{color:var(--ink);font-variant-numeric:tabular-nums}.formbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label,.field>span{color:var(--sub);font-size:12px}.field input,.field select,.field textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;min-width:110px;padding:7px 10px;font-family:inherit;font-size:13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue2);outline:none;box-shadow:0 0 0 2px #2f55971f}.field input.hl,.field select.hl{background:var(--input)}.field input:disabled{color:var(--sub);background:#f3f4f6}.formtip{color:var(--sub);margin-bottom:12px;font-size:12px;line-height:1.8}.account-list{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.account-row{align-items:center;gap:10px;display:flex}.account-row label{color:var(--sub);min-width:44px;font-size:12px}.account-row input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;min-width:140px;padding:7px 10px;font-family:inherit;font-size:13px}.account-row input:focus{border-color:var(--blue2);outline:none;box-shadow:0 0 0 2px #2f55971f}.account-row input.hl{background:var(--input)}.input-affix{border:1px solid var(--line);background:var(--input);border-radius:8px;align-items:center;display:flex;overflow:hidden}.input-affix:focus-within{border-color:var(--blue2);box-shadow:0 0 0 2px #2f55971f}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.card-head h3{margin-bottom:0}.card-actions{flex-wrap:wrap;gap:8px;display:flex}.param-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:14px;display:grid}.param-item{border:1px solid var(--line);background:#f7f9fe;border-radius:10px;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.param-lb{color:var(--sub);letter-spacing:.5px;font-size:12px}.param-vl{color:var(--ink);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.param-accounts{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.account-chips{flex-wrap:wrap;gap:8px;display:flex}.account-chip{border:1px solid var(--line);background:#f7f9fe;border-radius:10px;align-items:center;gap:7px;padding:6px 12px;font-size:13px;display:inline-flex}.account-chip em{color:var(--sub);font-size:11.5px;font-style:normal}.account-chip strong{color:var(--ink);font-weight:600}.modal-overlay{z-index:80;background:#16233f80;justify-content:center;align-items:flex-start;padding:7vh 16px 40px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:14px;width:620px;max-width:100%;padding:20px 22px;box-shadow:0 16px 48px #0f172a4d}.modal.wide{width:900px}.modal-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.modal-head h3{color:var(--blue);align-items:center;gap:8px;margin-bottom:0;font-size:15px;display:flex}.modal-head h3:before{content:"";background:var(--gold);border-radius:2px;width:4px;height:15px}.modal-close{color:var(--sub);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 8px;font-size:22px;line-height:1}.modal-close:hover{color:var(--blue);background:#f0f4fa}.modal .formtip{margin-top:10px}.modal .formbar{margin-top:4px}.modal .formbar .field{flex:220px}.modal .formbar .field input,.modal .formbar .field select{width:100%}.input-affix i{color:var(--sub);background:#1f38640a;align-self:stretch;align-items:center;padding:0 8px;font-size:13px;font-style:normal;display:flex}.input-affix input{flex:1;min-width:90px;box-shadow:none!important;background:0 0!important;border:none!important}.field-grid{grid-template-columns:repeat(2,1fr);gap:10px 14px;display:grid}.drawer-layer{z-index:50;background:#16294a73;justify-content:flex-end;display:flex;position:fixed;inset:0}.entry-drawer{background:var(--card);width:min(460px,100vw);height:100%;padding:22px 24px;animation:.18s ease-out drawer-in;overflow-y:auto;box-shadow:-8px 0 30px #1f38642e}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.drawer-header .eyebrow{letter-spacing:2px;color:var(--blue2);font-size:11px;font-weight:700}.drawer-header h2{color:var(--blue);margin:4px 0 6px;font-size:20px}.drawer-header p{color:var(--sub);font-size:12.5px;line-height:1.7}.icon-button{border:1px solid var(--line);color:var(--sub);cursor:pointer;background:#fff;border-radius:8px;flex:none;width:32px;height:32px;font-size:16px;line-height:1}.icon-button:hover{color:var(--blue2);border-color:var(--blue2)}.entry-form{flex-direction:column;gap:14px;display:flex}.entry-form .field{width:100%}.entry-form .field input,.entry-form .field select,.entry-form .field textarea{width:100%;min-width:0}.mode-field{border:none}.mode-field legend{color:var(--sub);margin-bottom:5px;font-size:12px}.segmented{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.segmented label{text-align:center;cursor:pointer;color:var(--sub);background:#fff;flex:1;padding:7px 0;font-size:13px;transition:all .15s}.segmented label.selected{background:var(--blue2);color:#fff;font-weight:600}.segmented input{opacity:0;pointer-events:none;position:absolute}.form-error{color:#b91c1c;background:#fdf0f0;border:1px solid #f3c1c1;border-radius:8px;padding:9px 12px;font-size:12.5px;line-height:1.6}.drawer-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.button{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-size:13px;transition:all .15s;display:inline-flex}.button:disabled{opacity:.6;cursor:wait}.button-primary{background:var(--blue2);border-color:var(--blue2);color:#fff;font-weight:600}.button-primary:hover{background:#264a85}.button-secondary:hover{border-color:var(--blue2);color:var(--blue2)}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#toast,.toast{color:#fff;opacity:.95;z-index:99;background:#16294a;border-radius:22px;align-items:center;gap:10px;max-width:90vw;padding:9px 22px;font-size:13px;animation:.2s ease-out toast-in;display:flex;position:fixed;bottom:34px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:.95;transform:translate(-50%)}}.toast button{color:#c7d3ea;cursor:pointer;background:0 0;border:none;font-size:15px}.toast .seal-check{color:var(--gold);font-weight:700}.status-banner{border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.status-banner.status-error{color:#b91c1c;background:#fdf0f0;border:1px solid #f3c1c1}.status-banner button{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;padding:4px 12px;font-size:12px}.pagination{justify-content:flex-end;align-items:center;gap:12px;margin-top:14px;display:flex}.pagination button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;height:32px;padding:0 14px;font-size:13px}.pagination button:disabled{opacity:.5;cursor:default}.pagination span{color:var(--sub);font-size:12.5px}.loading-state{flex-direction:column;gap:14px;display:flex}.skeleton{background:linear-gradient(90deg,#e9edf5 25%,#f4f6fb 50%,#e9edf5 75%) 0 0/200% 100%;border-radius:14px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.metric-skeleton{height:96px}.chart-skeleton{height:320px}.doc h4{color:var(--blue);margin:18px 0 8px;font-size:14.5px}.doc h4:first-child{margin-top:0}.doc p,.doc li{color:#374151;font-size:13.5px;line-height:1.9}.doc ul{padding-left:22px}.doc .hlbox{background:#fff8e6;border:1px solid #f2e2b6;border-radius:10px;margin:10px 0;padding:12px 16px;font-size:13.5px;line-height:1.9}.status-banner.status-warn{color:#8a6d1a;background:#fff8e6;border:1px solid #f2e2b6}.badge.manual{color:#b45309;background:#fff3e0}.syncbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.syncbar-actions{gap:8px;display:flex}.sync-status{margin:-4px 0 12px}.navpanel{border-top:1px dashed var(--line);flex-direction:column;gap:10px;margin-top:16px;padding-top:12px;display:flex}.subtabs-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;margin-bottom:14px;display:flex}.subtabs-bar .card-actions{padding-bottom:8px}.subtabs{gap:4px;display:flex}.subtabs button{cursor:pointer;color:var(--sub);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px 10px;font-family:inherit;font-size:14px}.subtabs button:hover{color:var(--blue2)}.subtabs button.active{color:var(--blue);border-bottom-color:var(--gold);font-weight:600}.fund-name,.fund-sub{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.batch-tb td{padding:4px 6px}.batch-tb select,.batch-tb input{width:100%;min-width:0;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;padding:6px 8px;font-family:inherit;font-size:13px}.batch-tb select:hover,.batch-tb input:hover{border-color:var(--line);background:#fff}.batch-tb select:focus,.batch-tb input:focus{border-color:var(--blue2);background:#fff;outline:none;box-shadow:0 0 0 2px #2f55971f}.batch-tb tr.row-error td{background:#fdf6f6}.batch-tb input[type=number]{text-align:right}footer.foot{text-align:center;color:#9aa4b5;padding:26px 0 10px;font-size:12px}.audit-row{cursor:pointer}.audit-json-grid{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.audit-json-block{margin-bottom:12px}.audit-json-label{color:var(--sub);margin-bottom:5px;font-size:12px}.audit-json{border:1px solid var(--line);white-space:pre-wrap;word-break:break-all;background:#f7f9fe;border-radius:8px;max-height:240px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.login-shell{background:linear-gradient(160deg,#16233f 0%,#1d3461 55%,#16233f 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{width:380px;max-width:100%;margin:0;padding:30px 28px}.login-brand{text-align:center;margin-bottom:22px}.login-brand svg{margin-bottom:10px}.login-brand h1{color:var(--blue);letter-spacing:1px;font-size:18px}.login-brand p{color:var(--sub);margin-top:5px;font-size:12px}.login-card .field{margin-bottom:14px}.login-submit{width:100%;margin-top:6px}.formtip-error{color:#b02a2a}.formtip-warn{color:#7a5a12;background:#fff7e0;border:1px solid #e8cf8a;border-radius:8px}.sidebar-user{border-top:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px;display:flex}.user-chip{color:#e8eefc;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar-user .btn.ghost{flex-shrink:0;padding:5px 10px}@media (width<=900px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;padding:16px 16px 12px;position:static}.brand{padding-bottom:12px}nav.tabs{flex-flow:wrap;gap:6px;margin:12px 0}nav.tabs button{border-bottom:2px solid #0000;border-left:none;padding:7px 12px}nav.tabs button.active{border-left:none;border-bottom-color:var(--gold)}.content{padding:16px 16px 32px}.hero,.grid2{grid-template-columns:1fr}.hero-grid{grid-template-columns:repeat(2,1fr)}.field-grid,.audit-json-grid{grid-template-columns:1fr}}@media (width<=600px){.shell,.sidebar,.content,.card,.hero,.hero-main,.grid2,.mini,.formbar,.field,.param-grid,.subtabs-bar,.tbl-toolbar,.month-nav,.syncbar,.overview-bar,.preview-banner,.navpanel{min-width:0}.content{padding:12px 12px 32px}.card{padding:14px}.status-banner,.formtip,.form-error,.empty-guide,.doc p,.doc li,.toast,#toast,.audit-json-label{overflow-wrap:anywhere}.sidebar{padding:14px 12px 10px}nav.tabs{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;max-width:100%;padding-bottom:4px;overflow-x:auto}nav.tabs button{flex:none;min-height:40px}.sidebar-user{flex-wrap:wrap}.overview-bar{flex-wrap:wrap;gap:10px;padding:12px 14px}.hero-grid{grid-template-columns:1fr}.hero-main{padding:18px}.hero-main .vl{overflow-wrap:anywhere;font-size:clamp(28px,9vw,42px)}.login-shell{padding:12px}.login-card{width:100%;padding:22px 18px}.login-card .field input{width:100%;min-width:0}.tbl-toolbar{gap:8px 10px}.tbl-toolbar .tf{flex:100%}.tbl-toolbar .tf select,.tbl-toolbar .tf input{flex:1;width:100%;min-width:0}.range-tabs{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;max-width:100%;display:flex;overflow-x:auto}.range-tab{flex:none;min-height:40px}.subtabs{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;max-width:100%;overflow-x:auto}.subtabs button{flex:none;min-height:40px}.tbl-scroll{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;max-width:100%}.chart{max-width:100%}.chart-tooltip{white-space:normal;max-width:40%}.help-tip:after{max-width:min(230px,70vw)}.btn,.range-tab,.modal-close,.tf-toggle,.maintenance-toggle,.status-banner button,.pagination button,.month-nav-btn,.th-sort{min-height:40px}.modal-close,.month-nav-btn{min-width:40px}.segmented label{justify-content:center;align-items:center;min-height:40px;display:inline-flex}.audit-row td{padding-top:12px;padding-bottom:12px}.field input,.field select,.field textarea,.account-row input,.tbl-toolbar select,.tbl-toolbar input,.batch-tb select,.batch-tb input,.month-pick,.preview-banner select{min-height:40px}.modal-overlay{padding:8px;padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}.modal,.modal.wide{flex-direction:column;width:100%;max-height:calc(100dvh - 16px);padding:14px;display:flex}.modal-head{flex:none}.modal-body{flex:1;min-height:0;overflow:hidden auto}.modal .formbar .field{flex:100%;min-width:0}.modal .formbar .field input,.modal .formbar .field select,.modal .formbar .field textarea{width:100%;min-width:0}.param-grid{grid-template-columns:1fr}.account-row{flex-wrap:wrap}.account-row input{flex:1;min-width:0}.preview-banner-text{flex:100%;min-width:0}.pagination,.syncbar-actions{flex-wrap:wrap}}
