:root{--bg:#071018;--panel:#0d1822;--panel2:#111f2b;--line:#203342;--text:#f5f8fa;--muted:#9db0bf;--accent:#37d6b0;--accent2:#62b4ff;--danger:#ff7d7d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Noto Sans KR",Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.portalBody{background:radial-gradient(circle at 80% 10%,#12334b 0,transparent 28%),linear-gradient(180deg,#071018,#09141d 70%,#071018)}.portalNav{height:78px;display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:auto;padding:0 28px}.portalBrand,.loginBrand{display:flex;align-items:center;gap:12px}.portalBrand>img:first-child,.loginBrand>img:first-child{width:34px;height:34px}.wordmark{width:148px;max-height:30px}.navActions{display:flex;align-items:center;gap:16px}.textLink{color:#c8d6df;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:13px 20px;font-weight:700;transition:.2s}.btn:hover{transform:translateY(-1px);border-color:#3e5c70}.btn.small{padding:9px 14px;font-size:13px}.btn.primary{background:linear-gradient(135deg,var(--accent),#25b990);color:#032118;border:0;box-shadow:0 12px 28px #20b99425}.btn.secondary,.btn.ghost{background:#ffffff08}.heroPortal{min-height:650px;max-width:1240px;margin:auto;padding:88px 28px 70px;display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center}.badge,.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:800;color:var(--accent);text-transform:uppercase}.heroCopy h1,.loginVisual h1{font-size:58px;line-height:1.08;letter-spacing:-.045em;margin:20px 0}.heroCopy h1 em,.loginVisual h1 em{font-style:normal;color:#91e8d3}.heroCopy p,.loginVisual p{max-width:680px;color:var(--muted);font-size:18px;line-height:1.75}.heroActions{display:flex;gap:12px;margin:34px 0}.trustRow{display:flex;gap:22px;flex-wrap:wrap;color:#7f96a7;font-size:12px}.heroPanel{padding:26px;border:1px solid #294154;border-radius:22px;background:linear-gradient(180deg,#10202cdd,#0b1720dd);box-shadow:0 28px 80px #0008}.miniTop{display:flex;align-items:center;gap:10px;color:#dbe7ed}.miniTop .dot{width:9px;height:9px;background:var(--accent);border-radius:50%;box-shadow:0 0 18px var(--accent)}.miniTop small{margin-left:auto;color:#7890a1}.miniMetric{margin:40px 0 22px;display:flex;flex-direction:column;gap:8px}.miniMetric span{font-size:11px;color:#7792a5;letter-spacing:.14em}.miniMetric strong{font-size:24px}.miniMetric small{color:#86a0b0}.chartMock{height:210px;display:flex;gap:10px;align-items:flex-end;border-bottom:1px solid #2a4050;padding:18px 8px}.chartMock i{flex:1;background:linear-gradient(180deg,#4ce0ba,#2c8fcd);border-radius:5px 5px 0 0;opacity:.82}.panelGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.panelGrid div{background:#ffffff06;border:1px solid #1d3443;padding:14px;border-radius:10px}.panelGrid span{display:block;font-size:11px;color:#71899a;margin-bottom:7px}.featureSection{max-width:1240px;margin:auto;padding:80px 28px 100px}.sectionHead h2{font-size:38px;margin:12px 0 34px}.featureGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.featureGrid article{background:#0d1923;border:1px solid #1e3342;border-radius:16px;padding:26px;min-height:190px}.featureGrid article>b{color:#5f8298;font-size:12px}.featureGrid h3{margin:25px 0 10px}.featureGrid p{color:var(--muted);font-size:14px;line-height:1.65}.cta{max-width:1184px;margin:0 auto 80px;padding:42px;border:1px solid #234457;border-radius:20px;background:linear-gradient(135deg,#102430,#0c1c25);display:flex;align-items:center;justify-content:space-between;gap:24px}.cta h2{margin:10px 0}.cta p{color:var(--muted);margin:0}.portalFooter{border-top:1px solid #142731;display:flex;justify-content:space-between;max-width:1240px;margin:auto;padding:28px;color:#718a9a;font-size:12px}.loginBody{min-height:100vh;background:radial-gradient(circle at 10% 20%,#113449 0,transparent 32%),#071018}.loginBrand{position:absolute;top:28px;left:36px}.loginWrap{min-height:100vh;display:grid;grid-template-columns:1fr 460px;gap:80px;align-items:center;max-width:1180px;margin:auto;padding:120px 32px 70px}.loginVisual h1{font-size:48px}.visualPoints{display:flex;flex-direction:column;gap:12px;color:#b8cad5;margin-top:32px}.loginCard{background:#0d1923;border:1px solid #233b4b;border-radius:22px;padding:38px;box-shadow:0 30px 90px #0007}.loginCard h2{font-size:28px;margin:10px 0 8px}.loginCard>div>p{color:var(--muted);margin-top:0}.loginCard form{display:flex;flex-direction:column;gap:18px;margin-top:28px}.loginCard label{font-size:13px;font-weight:700;color:#c9d8e0}.loginCard input{width:100%;margin-top:8px;padding:14px 15px;background:#08121a;border:1px solid #27404f;border-radius:9px;color:white;outline:none}.loginCard input:focus{border-color:var(--accent)}.full{width:100%;margin-top:4px}.loginError,.configWarn{margin-top:18px;padding:12px 14px;border-radius:9px;font-size:13px}.loginError{background:#ff626212;color:#ffabab;border:1px solid #ff737335}.configWarn{background:#ffcc6612;color:#ffd98a;border:1px solid #f0c55b35}.loginFoot{display:flex;justify-content:space-between;margin-top:28px;padding-top:20px;border-top:1px solid #1b2e3a;color:#718b9b;font-size:12px}.loginFoot a{color:#9bb1bf}@media(max-width:900px){.heroPortal,.loginWrap{grid-template-columns:1fr}.heroPortal{padding-top:48px}.heroCopy h1,.loginVisual h1{font-size:42px}.featureGrid{grid-template-columns:1fr 1fr}.loginVisual{display:none}.loginWrap{max-width:520px}.cta{margin-left:20px;margin-right:20px}.portalFooter{padding-left:28px;padding-right:28px}}@media(max-width:620px){.portalNav{padding:0 18px}.portalBrand .wordmark{display:none}.heroPortal{padding-left:20px;padding-right:20px;gap:35px}.heroCopy h1{font-size:37px}.heroCopy p{font-size:16px}.heroActions{flex-direction:column}.featureSection{padding:60px 20px}.featureGrid{grid-template-columns:1fr}.cta{padding:28px;align-items:flex-start;flex-direction:column}.portalFooter{flex-direction:column;gap:8px}.loginBrand{left:24px}.loginWrap{padding:110px 20px 40px}.loginCard{padding:28px 22px}}
