:root {
  --bg:#f6f7f3;
  --text:#242c3d;
  --muted:#616b7c;
  --surface:#fff;
  --surface-soft:#f6f8fb;
  --line:#dce2e9;
  --line-strong:#b6c0d1;
  --shadow:0 8px 28px #22354b08;
  --radius:16px;
}
body {
  background:#f6f7f3;
  color:var(--text);
  font-family:"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid #6477cf;
  outline-offset:3px;
}
[hidden] {
  display:none!important;
}
.skip-link {
  position:absolute;
  left:18px;
  top:-80px;
  padding:12px;
  background:#fff;
  z-index:90;
}
.skip-link:focus {
  top:10px;
}
.new-brand {
  display:inline-flex;
  gap:9px;
  align-items:center;
  text-decoration:none;
  font-size:20px;
  font-weight:800;
  color:#3949a3;
  margin-bottom:36px;
}
.new-brand span {
  font-size:10px;
  padding:2px 6px;
  background:#e3ecb7;
  color:#586335;
  border-radius:5px;
}
.teacher-auth-shell {
  background:linear-gradient(130deg,#f8f9f5,#eef1fa);
}
.teacher-auth-card {
  padding:38px;
  border:1px solid #dde2e9;
  box-shadow:0 18px 55px #24325a0a;
  backdrop-filter:none;
}
.teacher-auth-card h1 {
  font-size:34px;
  line-height:1.38;
  letter-spacing:-.045em;
}
.teacher-auth-eyebrow {
  font-size:12px;
  letter-spacing:.02em;
  color:#3949a3;
}
.teacher-auth-helper {
  font-size:12px;
  line-height:1.8;
}
.teacher-auth-button {
  min-height:50px;
  border-radius:9px;
  background:#3949a3;
  color:white;
}
.teacher-auth-copy {
  font-size:15px;
  line-height:1.8;
}
.app-shell {
  max-width:1400px;
  padding:26px;
}
.hero {
  padding:25px 28px;
  box-shadow:none;
  border:1px solid var(--line);
  grid-template-columns:minmax(0,1fr) minmax(220px,.45fr);
}
.hero h1 {
  font-size:32px;
  line-height:1.35;
  letter-spacing:-.045em;
  color:#3949a3;
}
.hero-copy {
  font-size:14px;
  line-height:1.7;
}
.hero .eyebrow {
  font-size:11px;
  letter-spacing:.05em;
  color:#647198;
}
.status-card {
  background:#f8f9fc;
  padding:12px 16px;
}
.teacher-session-card .status-card {
  gap:7px;
}
.teacher-logout-button {
  padding:8px;
  font-size:12px;
}
.status-label {
  font-size:11px;
  letter-spacing:0;
}
.tab-bar {
  position:sticky;
  top:10px;
  z-index:20;
  display:flex;
  width:fit-content;
  max-width:100%;
  border-radius:12px;
  background:#fff;
  box-shadow:0 6px 18px #24325a0a;
  border:1px solid var(--line);
  gap:5px;
}
.tab-button {
  border-radius:8px;
  min-height:44px;
  font-size:14px;
  font-weight:700;
  padding:10px 23px;
  white-space:nowrap;
}
.tab-button.is-active {
  background:#3949a3;
}
.tab-button:not(.is-active):hover {
  background:#eef1fa;
}
.panel {
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  backdrop-filter:none;
}
.panel-main {
  min-height:500px;
}
.section-title {
  font-size:24px;
}
.service-policy-links {
  font-size:12px;
}
input,select,textarea {
  max-width:100%;
}
.teacher-user-email {
  overflow-wrap:anywhere;
}
@media(max-width:700px) {
  .app-shell {
    padding:12px;
  }
  .hero {
    padding:20px;
    grid-template-columns:1fr;
    gap:18px;
    margin-bottom:12px;
  }
  .hero h1 {
    font-size:28px;
  }
  .hero-copy {
    font-size:13px;
  }
  .teacher-session-card .status-card {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    font-size:12px;
  }
  .teacher-logout-button {
    width:auto;
    margin-left:auto;
  }
  .status-label {
    margin-bottom:0;
  }
  .tab-bar {
    top:6px;
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    padding:5px;
    gap:3px;
  }
  .tab-button {
    font-size:12px;
    padding:10px 2px;
    min-width:0;
  }
  .panel {
    padding:15px;
  }
  .teacher-auth-shell {
    padding:17px;
  }
  .teacher-auth-card {
    padding:27px;
  }
  .teacher-auth-card h1 {
    font-size:29px;
  }
  .teacher-auth-copy {
    font-size:14px;
  }
  .new-brand {
    margin-bottom:28px;
  }
}
