:root{--ink:#182230;--muted:#667085;--line:#e4e7ec;--surface:#fff;--canvas:#f5f7fb;--brand:#3457d5;--brand-dark:#243da0}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:var(--canvas);font-family:Pretendard,Noto Sans KR,system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.centered-loader{place-items:center;min-height:100vh;display:grid}.login-page{background:#fff;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);min-height:100vh;display:grid}.login-visual{color:#fff;background:radial-gradient(circle at 20% 15%,#8cb4ff8c,#0000 32%),linear-gradient(145deg,#1f3a8a 0%,#3457d5 55%,#5b7cfa 100%);flex-direction:column;justify-content:space-between;padding:clamp(36px,7vw,92px);display:flex}.login-visual h1{letter-spacing:-.04em;margin:22px 0;font-size:clamp(36px,5vw,68px);line-height:1.08}.login-visual p{opacity:.9;max-width:520px;font-size:18px;line-height:1.7}.brand-mark{letter-spacing:.04em;align-items:center;gap:12px;font-weight:800;display:inline-flex}.brand-dot{background:#b9e4ff;border-radius:5px;width:16px;height:16px;margin-right:18px;box-shadow:18px 0 #ffffff73}.login-form-wrap{place-items:center;padding:32px;display:grid}.login-form{width:min(440px,100%)}.login-form h2{letter-spacing:-.03em;margin:0 0 10px;font-size:32px}.login-form .lead{color:var(--muted);margin:0 0 36px}.app-shell{min-height:100vh;display:flex}.app-main{flex:1;min-width:0;margin-left:260px}.app-content{max-width:1600px;margin:0 auto;padding:28px}.page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.page-heading h1{letter-spacing:-.03em;margin:0;font-size:28px}.page-heading p{color:var(--muted);margin:8px 0 0}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.data-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 4px 18px #1018280a}.empty-state{text-align:center;color:var(--muted);padding:70px 24px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px}.metric strong{margin-top:8px;font-size:26px;display:block}@media (max-width:900px){.login-page{grid-template-columns:1fr}.login-visual{min-height:280px}.login-visual h1{font-size:40px}.app-main{margin-left:0}.app-content{padding:18px}.metric-grid{grid-template-columns:1fr}}
