:root{
  --bg:#0f1220; --panel:#151a2c; --line:#263048;
  --txt:#e7ecf5; --mut:#9aa7bd; --btn:#1d263d;
  --input:#0f1426; --focus:#3b82f6;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:linear-gradient(180deg,#0b1020,#0f172a);color:var(--txt);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,'Noto Sans KR',sans-serif
}
header{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 16px;background:#12182a;border-bottom:1px solid #1f2942;
  position:sticky;top:0;z-index:10;gap:10px;flex-wrap:wrap
}
.brand a{color:#fff;text-decoration:none;font-weight:800}
.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.root-switch select{
  padding:8px 10px;border:1px solid #2b3552;border-radius:10px;background:#0f1426;color:#fff
}

.container{max-width:1100px;margin:20px auto;padding:0 16px}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:18px;box-shadow:0 10px 30px rgba(0,0,0,.25)
}
h2{margin:6px 0 14px}
.muted{color:var(--mut)}
.btn{
  border:1px solid #2b3552;background:var(--btn);color:#fff;
  padding:10px 14px;border-radius:10px;cursor:pointer;text-decoration:none
}
.btn:hover{filter:brightness(1.08)}

label{display:block;font-size:13px;color:var(--mut);margin:10px 0 6px}
input,select,textarea{
  width:100%;padding:14px;border:1px solid #2b3552;border-radius:12px;
  background:var(--input); color:#fff; outline:none; font-size:16px;
}
input[type=password]{ime-mode:disabled}
.actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.flash{padding:10px;border:1px solid #2b3552;background:#12203a;border-radius:10px;margin:10px 0}
.flash.err{background:#2a1320;border-color:#6a2a3a}

table{width:100%;border-collapse:collapse;margin-top:10px}
th,td{border-bottom:1px solid #22304b;padding:10px;text-align:left}
th{background:#131a2f}
.status-2xx{color:#34d399}.status-4xx{color:#fbbf24}.status-5xx{color:#f87171;font-weight:600}

/* 포커스 효과 */
input:focus, select:focus, textarea:focus{
  border-color:var(--focus) !important;
  box-shadow:0 0 3px rgba(59,130,246,.25), inset 0 1px 3px rgba(0,0,0,.45);
}

/* 로그인/가입/비번변경 화면 중앙 정렬 (조금 위쪽으로 조정) */
.auth-center{
  min-height:calc(100vh - 64px);
  display:flex;
  align-items:flex-start;        /* 위쪽 기준 정렬 */
  justify-content:center;
  padding-top:8vh;               /* 화면 상단에서 약간 여백 */
  padding-bottom:16px;
}
.auth-card{
  width:100%;
  max-width:420px;
}