:root{--bg:#f3f6fb;--card:#fff;--ink:#182230;--muted:#718096;--line:#e6ebf2;--blue:#2459d3;--green:#07865d;--red:#d14343}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;font-size:14px}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:26px max(20px,calc((100vw - 1200px)/2));background:#fff;border-bottom:1px solid var(--line)}
h1{font-size:24px;margin:5px 0 0}h2{font-size:20px;margin:2px 0 0}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#8390a3;font-weight:800;margin:0}.wrap{max-width:1200px;margin:24px auto;padding:0 20px}.status-row{display:flex;align-items:center;gap:12px;margin:0 0 16px}.status{border-radius:20px;padding:7px 12px;font-weight:700;font-size:12px}.status.mock{background:#fff0cf;color:#8a5b00}.status.live{background:#dff8ed;color:#08764e}.small{font-size:12px}.muted{color:var(--muted)}.refresh{margin-left:auto;color:var(--blue);font-weight:700;text-decoration:none}.notice,.alert{padding:13px 16px;border-radius:12px;background:#fff3d9;color:#775000;margin:12px 0 18px;line-height:1.6}.alert{background:#fff0f0;color:#a32c2c}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.metric{background:var(--card);padding:20px;border-radius:16px;border:1px solid var(--line);min-width:0}.metric span{display:block;color:var(--muted);font-size:12px;margin-bottom:12px}.metric strong{font-size:23px;letter-spacing:-.5px;display:block;white-space:nowrap}.metric strong small{font-size:12px;margin-left:5px;color:var(--muted)}.metric em{display:block;font-size:11px;color:var(--muted);font-style:normal;margin-top:10px}.main-metric{background:#162b52;color:white}.main-metric span,.main-metric em{color:#c3d2ed}.main-metric strong small{color:#c3d2ed}
.tabs{display:flex;gap:8px;overflow:auto;padding:4px 0 16px}.tabs a{white-space:nowrap;text-decoration:none;background:#e8edf5;color:#4b5c73;border-radius:30px;padding:10px 16px;font-weight:700;font-size:12px}.tabs a:hover{background:#dce7fb;color:var(--blue)}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;margin:0 0 16px;padding:22px;scroll-margin-top:16px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.pill{font-size:11px;color:#4b5d78;background:#edf2f8;border-radius:30px;padding:7px 11px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:820px}th{font-size:11px;color:#78869b;text-align:left;font-weight:700;background:#f8fafc}td,th{padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:last-child td{border-bottom:0}.right{text-align:right}.strong{font-weight:800}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.empty{text-align:center;color:var(--muted);padding:30px!important}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.detail-grid>div{padding:15px;background:#f7f9fc;border:1px solid var(--line);border-radius:12px}.detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:9px}.detail-grid b{font-size:15px}
.guidelines{line-height:1.9;color:#526176;padding-left:20px}footer{text-align:center;color:#8b96a8;font-size:11px;padding:10px 0 32px}
.ghost{border:1px solid var(--line);background:white;border-radius:10px;padding:10px 15px;font-weight:700;color:#5c687a;cursor:pointer}
.login-bg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,#eaf0fb,#f7f9fc)}.login-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:36px;width:min(440px,calc(100% - 28px));box-shadow:0 20px 60px #17345c14}.brand-mark{width:46px;height:46px;display:grid;place-items:center;background:#193968;color:#fff;font-weight:900;border-radius:14px;font-size:22px;margin-bottom:22px}.login-card h1{font-size:25px;margin:10px 0}.login-card form{margin-top:26px}.login-card label{display:block;font-weight:700;font-size:12px;margin-bottom:16px}.login-card input{display:block;width:100%;border:1px solid #dce3ed;border-radius:10px;padding:13px 12px;margin-top:8px;font-size:15px;outline:none}.login-card input:focus{border-color:#6289db;box-shadow:0 0 0 3px #2459d31a}.primary{width:100%;border:0;background:#1e4c9b;color:white;padding:14px;border-radius:11px;font-size:14px;font-weight:800;cursor:pointer}.login-card .small{margin-top:22px;line-height:1.6}
@media(min-width:900px){.metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.topbar{padding:18px 16px}.topbar h1{font-size:19px}.wrap{padding:0 12px;margin:16px auto}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:15px}.metric strong{font-size:18px}.main-metric{grid-column:1/-1}.panel{padding:16px}.detail-grid{grid-template-columns:repeat(2,1fr)}.status-row{flex-wrap:wrap}.refresh{margin-left:0}.tabs a{padding:9px 12px}}
.api-strip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-5px 0 18px}.api-label{font-size:11px;color:var(--muted);font-weight:700;margin-right:2px}.api-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:11px;font-weight:700;color:#526176}.api-chip i{width:7px;height:7px;border-radius:50%;display:inline-block}.api-chip.ok i{background:var(--green)}.api-chip.fail{color:#a32c2c;background:#fff5f5}.api-chip.fail i{background:var(--red)}
.detail-grid span small{font-size:9px;color:#9aa5b4;margin-left:4px}.info-note{font-size:11px;line-height:1.7;color:#64748b;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:14px 0 6px}.tx-badge{display:inline-block;min-width:42px;text-align:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#eef2f7;color:#526176}.tx-매수,.tx-출금{background:#fff0f0;color:#b43a3a}.tx-매도,.tx-입금,.tx-배당,.tx-이자{background:#e9f8f2;color:#08764e}
@media(max-width:650px){.api-strip{margin-top:-2px}.pnl-grid{grid-template-columns:repeat(2,1fr)}}

.section-sub{margin:7px 0 0;color:var(--muted);font-size:11px}.holding-pills{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.weight-cell{min-width:105px}.weight-value{font-weight:800;font-variant-numeric:tabular-nums}.weight-track{height:5px;background:#e9eef5;border-radius:999px;overflow:hidden;margin:5px 0 0 auto;width:78px}.weight-track span{display:block;height:100%;background:#2459d3;border-radius:999px}@media(max-width:650px){.section-head{align-items:flex-start;gap:10px}.holding-pills{justify-content:flex-start}}
