:root{color:#1c2430;background:#eef3f8;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-variant-numeric:tabular-nums;line-height:1.45}*{box-sizing:border-box}html,body,#root{max-width:100%}body{margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.gate{min-height:100vh;display:grid;place-items:center;padding:32px 16px}.gate-card{width:min(980px,100%);display:grid;grid-template-columns:.9fr 1.1fr;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 18px 50px #162d541f}.gate-side{background:#10243f;color:#fff;padding:36px 32px}.gate-side h1{margin:16px 0 8px;font-size:30px;letter-spacing:.02em}.gate-side p{margin:0;color:#c9d6e8}.gate-side ol{margin:28px 0 0;padding-left:18px;color:#d7e4f4}.gate-side li{margin:8px 0}.gate-main{padding:28px}.gate-main h2{margin:0 0 6px;font-size:18px}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.entry{text-align:left;border:1px solid #e4ebf4;background:#f8fbfe;border-radius:12px;padding:12px 14px}.entry:hover{border-color:#2f80ed;background:#fff}.entry b{display:block}.entry span{display:block;color:#6d7b8f;font-size:12px;margin-top:4px}.muted{color:#6d7b8f;font-size:13px}.tiny{color:#8b97a8;font-size:12px}.logo-mark{width:42px;height:42px;border-radius:12px;background:#f0a202;display:inline-grid;place-items:center;box-shadow:inset 0 -8px 12px #b45a001f}.topbar{height:64px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #e6edf5;position:sticky;top:0;z-index:4}.brand{display:flex;gap:10px;align-items:center;background:none;border:0;padding:0}.brand strong{display:block;font-size:16px}.brand small{color:#7b8798}.topnav{display:flex;gap:6px}.topnav button,.side button,.tabbar button{border:0;background:transparent;color:#405066;border-radius:999px;padding:8px 12px}.topnav button.active{background:#e8f1fc;color:#1d5fbf;font-weight:700}.client-main{width:min(1080px,calc(100% - 28px));margin:22px auto 40px}.report-head{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px #1c375a0d}.report-inner{padding:22px 26px 16px;display:flex;justify-content:space-between;gap:16px}.report-title{display:flex;gap:12px;align-items:center}.report-title h1{margin:0;font-size:28px}.report-title p{margin:4px 0 0;color:#7d8999}.report-title p b{color:#e39b00;font-weight:800;letter-spacing:.04em}.report-date{text-align:right;color:#8b97a8}.report-date strong{display:block;color:#1c2430;font-size:22px;margin-top:2px}.rule{height:3px;background:#2f80ed}.section-title{display:flex;align-items:center;gap:8px;margin:22px 2px 12px;font-weight:800}.section-title:before{content:"";width:3px;height:16px;border-radius:2px;background:#2f80ed}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.metric{background:#fff;border-radius:12px;padding:14px 8px 12px;text-align:center;border:1px solid #edf1f6}.metric .k{color:#8b97a8;font-size:13px}.metric .v{margin-top:8px;font-size:20px;font-weight:800}.up{color:#e23b3b}.down{color:#12a06a}.warn{color:#e07a1f}.force{color:#d21f1f}.pos{border-radius:14px;padding:16px 18px 12px;margin-bottom:12px;border:0;width:100%;text-align:left;color:inherit}.pos.up{background:#fff4f4}.pos.down{background:#eefaf4}.pos.flat{background:#fff;border:1px solid #edf1f6}.pos-top{display:grid;grid-template-columns:1.3fr .9fr 1.2fr auto;gap:8px;align-items:baseline}.pos-name{font-weight:800;font-size:18px}.pos-name span{font-weight:600;color:#526173}.pos-no{color:#526173;font-weight:700}.pos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 12px;margin-top:14px}.cell .k{display:block;color:#8b97a8;font-size:12px}.cell .v{display:block;margin-top:3px;font-weight:800;font-size:18px}.tags{display:flex;gap:6px;margin-top:8px}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:12px;background:#eef2f6;color:#405066}.tag.red{background:#fde8e8;color:#c42323}.tag.orange{background:#fff1df;color:#b86400}.tag.green{background:#e5f7ee;color:#0d8a58}.tag.blue{background:#e7f1fc;color:#1d5fbf}.confidential{text-align:center;letter-spacing:.14em;color:#b0bac6;font-size:12px;margin:28px 0 8px}.empty{background:#fff;border-radius:14px;min-height:180px;display:grid;place-items:center;color:#98a2b1;border:1px solid #edf1f6}.banner{background:#fff6ea;border:1px solid #f3d2a6;color:#8a4b00;border-radius:12px;padding:12px 14px;margin-bottom:12px}.banner.danger{background:#fdecec;border-color:#f3c1c1;color:#9d1c1c}.card,.panel{background:#fff;border-radius:14px;padding:16px;border:1px solid #edf1f6;margin-bottom:12px}.card.warn{background:#fffaf3;border-color:#f3d2a6}.card.danger{background:#fff6f6;border-color:#f3c1c1}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.spread{display:flex;justify-content:space-between;gap:12px;align-items:center}.btn{border:1px solid #d5deea;background:#fff;border-radius:10px;padding:8px 12px;color:#1c2430}.btn.primary{background:#2f80ed;border-color:#2f80ed;color:#fff}.btn.danger{background:#d21f1f;border-color:#d21f1f;color:#fff}.btn.ghost{background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#526173}input,select,textarea{border:1px solid #d9e2ec;border-radius:10px;padding:9px 10px;background:#fff;color:#1c2430}textarea{min-height:72px;resize:vertical}.error{color:#c42323;background:#fdecec;border-radius:10px;padding:8px 10px;margin:8px 0}.ok{color:#0d8a58}.table-wrap{overflow:auto;background:#fff;border-radius:14px;border:1px solid #edf1f6}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;white-space:nowrap;text-align:left}th{background:#f6f8fb;color:#617187;font-weight:700;position:sticky;top:0}td{border-top:1px solid #eef2f6}td.num,th.num{text-align:right}button.linkish{background:none;border:0;padding:0;font-weight:700;color:inherit}.table-wrap th.sticky,.table-wrap td.sticky{position:sticky;left:0;background:#fff;z-index:1}.table-wrap th.sticky{background:#f6f8fb;z-index:2}tr.warn td.sticky{background:#fff8ef}tr.danger td.sticky{background:#fff1f1}tr.warn td{background:#fff8ef}tr.danger td{background:#fff1f1}tr.click td{cursor:pointer}.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #e6edf5;grid-template-columns:repeat(5,1fr);z-index:5;padding-bottom:6px}.tabbar button{border-radius:0;font-size:12px}.tabbar button.active{color:#1d5fbf;font-weight:800}.admin-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.side{background:#10243f;color:#d5e2f2;padding:18px 12px;position:sticky;top:0;height:100vh}.side .who{padding:8px 10px 16px}.side .who b{display:block;color:#fff}.side button,.side a{display:block;width:100%;text-align:left;color:#d5e2f2;border-radius:8px;margin:2px 0;background:transparent;border:0}.side button.active,.side a.active{background:#ffffff1f;color:#fff}.admin-main{min-width:0}.admin-top{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#fff;border-bottom:1px solid #e6edf5;position:sticky;top:0;z-index:3}.admin-content{padding:18px}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{background:#fff;border-radius:14px;padding:14px 16px;border:1px solid #edf1f6}.stat-card b{display:block;font-size:26px;margin-top:4px}.bars{display:flex;flex-direction:column;gap:12px}.bar-track{height:8px;background:#e8eef6;border-radius:99px;overflow:hidden}.bar-fill{height:100%;background:#2f80ed}.bar-fill.warn{background:#e07a1f}.bar-fill.danger{background:#d21f1f}.split{display:grid;grid-template-columns:1.3fr .7fr;gap:12px}.page-title{margin:0 0 12px;font-size:22px}.badge-dot{background:#e23b3b;color:#fff;border-radius:99px;padding:0 6px;font-size:11px;margin-left:4px}@media(max-width:980px){.gate-card,.split,.form-grid,.entry-grid,.stat-cards{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.admin-shell{grid-template-columns:1fr}.side{position:sticky;top:0;height:auto;display:flex;gap:6px;overflow:auto;z-index:4}.side .who{display:none}.side a,.side button{width:auto;white-space:nowrap}.pos-top,.pos-grid{grid-template-columns:1fr 1fr}}@media(max-width:800px){.topnav,.desktop-only{display:none}.topbar{height:56px;padding:0 12px}.tabbar{display:grid;width:100%;grid-template-columns:repeat(5,minmax(0,1fr))}.tabbar button{min-width:0;max-width:100%;padding:8px 0}.holdings-head{display:flex;width:100%;align-items:center;gap:8px}.holdings-head .section-title{flex:1 1 auto;min-width:0;margin:12px 0 8px;font-size:16px}.holdings-head .btn{flex:0 0 auto;padding:6px 8px}.pos-top>*{min-width:0}.spread{flex-wrap:wrap}.client-main{width:min(1080px,calc(100% - 16px));margin:12px auto 96px}.report-inner{padding:14px 14px 10px;display:block}.report-date{text-align:left;margin-top:8px}.report-title h1{font-size:22px}.section-title{margin:12px 2px 8px}.metric{padding:8px 6px 7px}.metric .k{font-size:12px}.metric .v,.cell .v{font-size:16px}.metric .v{margin-top:4px}.pos{padding:12px 12px 8px}.pos-grid{margin-top:8px}.cell .v{font-size:16px}}@media print{.topbar,.tabbar,.no-print,.admin-top,.side{display:none!important}.admin-shell{display:block}body{background:#fff}.client-main{width:auto;margin:0}}.topnav a,.side a{color:inherit;text-decoration:none;padding:8px 12px;border-radius:8px}.side a{display:block;color:#d5e2f2}.side a:hover,.side button:hover{background:#ffffff1f}@media(max-width:800px){.topnav{display:flex;flex-wrap:wrap}.client-main{margin-bottom:28px}}.login-card{width:min(420px,100%);background:#fff;border-radius:20px;padding:40px 36px 36px;box-shadow:0 18px 50px #162d541f;display:flex;flex-direction:column;gap:22px}.login-brand{text-align:center}.login-mark{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#e39b00;margin-bottom:14px}.gate-staff .login-mark{background:#1d4f91}.login-card h1{margin:0;font-size:28px;letter-spacing:.04em}.login-card p{margin:8px 0 0;color:#7b8798}.login-card .field{font-size:14px;gap:8px}.login-card input{width:100%;height:46px;padding:0 14px}.login-submit{width:100%;height:46px;margin-top:4px;font-weight:700}.login-card .error{margin:0}.pager{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px}.stat-card button{margin-top:8px}.field.wide{grid-column:1 / -1}
