:root{color:#172033;background:#eef2f7;font-family:Inter,Noto Sans KR,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;background:linear-gradient(180deg,#f7f9fc,#edf2f7 34%,#e7edf5)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 28px;border-bottom:1px solid #d8e1ec;background:#f7f9fcf0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.top-actions,.icon-link,.primary-link,.panel-head,.data-toolbar,.filter-row,.hero-metrics,.coverage-chips,.searchbox,.table-link,.metric-inline{display:flex;align-items:center}.brand{gap:12px;min-width:0}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border:1px solid #c4d2e4;border-radius:8px;color:#1557c0;background:#fff}.brand h1,.brand p,.hero-copy h2,.hero-copy p,.panel h2,.panel-head span{margin:0}.brand h1{font-size:18px;line-height:1.1}.brand p{margin-top:3px;color:#61708a;font-size:13px}.top-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.icon-link,.primary-link{height:36px;gap:7px;border-radius:8px;padding:0 12px;font-size:13px;font-weight:700}.icon-link{border:1px solid #cbd7e6;color:#304057;background:#fff}.primary-link{border:1px solid #1f5fbf;color:#fff;background:#1f5fbf}.dashboard-grid{display:grid;grid-template-columns:minmax(290px,360px) minmax(0,1fr);gap:18px;width:min(1480px,100%);margin:0 auto;padding:18px 24px 32px}.sidebar,.panel,.hero-panel,.stat-tile{border:1px solid #d6e0eb;border-radius:8px;background:#ffffffeb;box-shadow:0 12px 28px #1d2c4414}.sidebar{position:sticky;top:92px;align-self:start;height:calc(100vh - 116px);min-height:560px;padding:16px;overflow:hidden}.panel-head{justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{font-size:16px}.panel-head span{display:block;margin-top:4px;color:#68758a;font-size:12px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.searchbox{gap:8px;height:40px;padding:0 10px;border:1px solid #ccd8e6;border-radius:8px;color:#6b7890;background:#f8fafc}.searchbox input{width:100%;min-width:0;border:0;outline:0;color:#1d293b;background:transparent}.country-list{display:grid;gap:8px;height:calc(100% - 86px);margin-top:14px;overflow:auto;padding-right:4px}.country-button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;width:100%;min-height:76px;padding:11px;border:1px solid #d7e1ed;border-left:4px solid transparent;border-radius:8px;color:#26364d;text-align:left;background:#fff}.country-button:hover,.country-button.selected{border-color:#2b67c7;border-left-color:#2b67c7;background:#f4f8ff}.country-title{min-width:0;overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.country-meta{display:grid;gap:2px;text-align:right}.country-meta strong{font-size:13px}.country-meta span,.coverage-chips span,.metric-card small,.stat-tile small,.metric-inline small{color:#728099;font-size:11px}.coverage-chips{grid-column:1 / -1;gap:6px}.coverage-chips span,.status-pill{border:1px solid #d7e0ea;border-radius:999px;padding:3px 7px;background:#f8fafc}.content{display:grid;gap:18px;min-width:0}.hero-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(520px,1.15fr);gap:18px;padding:22px}.eyebrow{display:inline-block;margin-bottom:10px;color:#1f5fbf;font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.hero-copy h2{overflow-wrap:anywhere;font-size:32px;line-height:1.12}.hero-copy p{margin-top:8px;color:#66748a}.hero-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric-card{display:grid;min-width:0;gap:4px;padding:14px;border:1px solid #d8e2ee;border-top:3px solid #2b67c7;border-radius:8px;background:#fbfdff}.metric-icon{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;color:#1f5fbf;background:#e8f1ff}.metric-card span:not(.metric-icon),.stat-tile span{color:#627087;font-size:12px;font-weight:700}.metric-card strong,.stat-tile strong{overflow-wrap:anywhere;font-size:24px;line-height:1.1}.error-banner{border:1px solid #ef9a9a;border-radius:8px;padding:12px 14px;color:#9f1239;background:#fff1f2}.stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.stat-tile{display:grid;gap:6px;min-height:94px;padding:14px}.split-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px}.panel{min-width:0;padding:16px}.chart-wrap{min-height:260px}.run-list{display:grid;gap:8px}.run-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;border:1px solid #dbe4ee;border-radius:8px;background:#fbfdff}.run-row strong,.run-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-row div{display:grid;min-width:0;gap:3px}.run-row div span{color:#6f7c91;font-size:12px}.status-pill{color:#166534;font-size:12px;font-weight:800;background:#ecfdf3}.import-count{min-width:28px;color:#1d4ed8;font-weight:900;text-align:right}.data-panel{padding:0;overflow:hidden}.data-toolbar{justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid #dbe4ee;background:#fbfdff}.data-toolbar h2,.data-toolbar span{margin:0}.data-toolbar h2{font-size:16px}.data-toolbar>div:first-child>span{display:block;margin-top:4px;color:#68758a;font-size:12px}.view-switch,.filter-row{display:flex;gap:8px}.view-switch{flex-wrap:wrap;justify-content:flex-end}.filter-row{align-items:center;padding:12px 16px;border-bottom:1px solid #dbe4ee;overflow-x:auto;background:#fff}.view-switch button,.filter-button{display:inline-flex;align-items:center;gap:8px;min-height:36px;border:1px solid #d5dfeb;border-radius:8px;padding:0 12px;color:#334155;font-weight:800;background:#fff;white-space:nowrap}.view-switch button.active,.filter-button.active{border-color:#1f5fbf;color:#fff;background:#1f5fbf}.view-switch button span,.filter-button span{min-width:22px;border-radius:999px;padding:2px 6px;color:inherit;background:#ffffff38}.filter-label{display:inline-flex;align-items:center;gap:6px;min-height:34px;color:#526178;font-size:12px;font-weight:900;white-space:nowrap}.table-scroll{width:100%;overflow-x:auto}table{width:100%;min-width:1040px;border-collapse:collapse}th,td{border-bottom:1px solid #e3e9f1;padding:12px 14px;text-align:left;vertical-align:middle}th{color:#64748b;font-size:12px;font-weight:900;background:#f8fafc}td{color:#26364d;font-size:13px}.table-link{gap:6px;min-width:0;color:#1d4ed8;font-weight:800}.table-subtext{display:block;margin-top:4px;color:#738097;font-size:11px;font-weight:700}.rank-cell{display:inline-grid;min-width:38px;height:28px;place-items:center;border-radius:8px;color:#133f91;font-weight:900;background:#e8f1ff}.rank-stack{display:grid;gap:3px}.rank-stack strong{font-weight:900}.rank-stack small{color:#728099;font-size:11px}.category-badge{display:inline-flex;align-items:center;min-height:28px;border:1px solid #cfdbea;border-radius:999px;padding:0 10px;color:#334155;font-size:12px;font-weight:900;background:#f8fafc;white-space:nowrap}.category-badge.global{border-color:#b7d7c4;color:#166534;background:#ecfdf3}.category-badge.local{border-color:#bfd3f8;color:#1d4ed8;background:#eff6ff}.metric-inline{flex-wrap:wrap;gap:4px 6px}.metric-inline strong{font-weight:900}.empty-state{padding:36px 16px;color:#6f7c91;text-align:center}@media(max-width:1180px){.dashboard-grid,.hero-panel,.split-row{grid-template-columns:1fr}.sidebar{position:static;height:auto;min-height:0}.country-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:420px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.topbar{align-items:flex-start;flex-direction:column;padding:14px 16px}.top-actions{justify-content:flex-start}.dashboard-grid{padding:14px}.hero-panel{padding:16px}.hero-copy h2{font-size:24px}.hero-metrics,.stat-grid,.country-list{grid-template-columns:1fr}.panel{padding:12px}.data-toolbar{align-items:stretch;flex-direction:column}.view-switch{justify-content:flex-start}.filter-row{padding:10px}}
