:root { color-scheme: light; font-family: Pretendard, "Noto Sans KR", "Malgun Gothic", sans-serif; color: #182133; background: #f3f6fa; }
* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
.login-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #f3f6fa; }
.login-panel { width: min(100%, 420px); padding: 34px; border: 1px solid #dbe3ed; border-radius: 14px; background: #fff; box-shadow: 0 18px 45px rgb(20 31 48 / 10%); }
.brand-mark { display: inline-grid; place-items: center; width: 34px; height: 34px; margin-right: 8px; border-radius: 8px; background: #2267e8; color: #fff; font-weight: 700; }
.login-panel h1 { margin: 18px 0 6px; font-size: 25px; }
.login-panel p, .muted { color: #68768a; }
.login-panel form, .login-panel label { display: grid; gap: 7px; }
.login-panel form { gap: 16px; margin-top: 24px; }
.login-panel input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid #dbe3ed; border-radius: 7px; }
.login-panel button { min-height: 44px; border: 0; border-radius: 7px; background: #2267e8; color: #fff; cursor: pointer; }
.alert { margin-top: 16px; padding: 10px 12px; border-radius: 7px; background: #fff0f2; color: #b43c49; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 220px minmax(0,1fr); }
.sidebar { padding: 20px 14px; background: #14233a; color: #dce5f3; }
.sidebar-brand { display: flex; align-items: center; margin-bottom: 22px; }
.sidebar nav { display: grid; gap: 2px; }
.sidebar nav span { margin: 15px 10px 5px; color: #94a4bb; font-size: 12px; }
.sidebar nav a { padding: 9px 10px; border-radius: 7px; color: inherit; text-decoration: none; font-size: 13px; }
.sidebar nav a.active { background: #2b3a52; color: #fff; }
.main-content header { min-height: 60px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid #dbe3ed; background: #fff; }
.main-content header form { display: flex; align-items: center; gap: 10px; }
.link-button { border: 0; background: transparent; color: #2267e8; cursor: pointer; }
.page-content { padding: 24px; }
.page-content h1 { margin: 0 0 5px; }
.summary-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 22px; }
.summary-grid article { padding: 18px; border: 1px solid #dbe3ed; border-radius: 9px; background: #fff; }
.summary-grid span { display: block; color: #68768a; font-size: 13px; }
.summary-grid strong { display: block; margin-top: 8px; font-size: 20px; }
.notice { margin-top: 16px; padding: 13px; border-radius: 8px; background: #eaf1ff; color: #2354a6; }
@media (max-width: 760px) { .app-shell { grid-template-columns: 1fr; } .sidebar { display: none; } .summary-grid { grid-template-columns: 1fr; } }

