/* [PARENT-DESIGN-20260718-004] 해외 교육 포털의 명료한 정보 구조를 반영한 학부모 화면 */
:root {
  --parent-ink: #15352f;
  --parent-muted: #667b75;
  --parent-green: #126b58;
  --parent-green-dark: #0d5547;
  --parent-mint: #d9eee7;
  --parent-line: #dce9e4;
  --parent-cream: #f7f4ec;
}

.parent-portal-layout {
  min-height: 100vh;
  background:
    radial-gradient(circle at 5% 8%, rgba(170, 221, 204, .34), transparent 26rem),
    radial-gradient(circle at 92% 28%, rgba(237, 203, 135, .2), transparent 23rem),
    #f8faf7;
}

.parent-portal-layout .app,
.parent-portal-layout .content {
  min-height: 100vh;
}

.parent-shell {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  color: var(--parent-ink);
}

.parent-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 94px;
  border-bottom: 1px solid rgba(21, 53, 47, .11);
}

.parent-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  text-decoration: none;
}

.parent-wordmark-logo {
  display: grid;
  width: 270px;
  height: 112px;
  place-items: center;
  background: transparent;
}

.parent-wordmark-logo img {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
} /* [PARENT-ALT-LOGO-20260718-005] 가로형 대안교육기관 로고를 읽을 수 있는 크기로 표시 */

.parent-wordmark strong,
.parent-wordmark small {
  display: block;
}

.parent-wordmark strong {
  font-size: 17px;
  letter-spacing: -.02em;
}

.parent-wordmark small {
  margin-top: 2px;
  color: #73837e;
  font-size: 12px;
}

.parent-secure-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #5b726b;
  font-size: 13px;
}

.parent-secure-label i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #36a37e;
  box-shadow: 0 0 0 5px rgba(54, 163, 126, .12);
}

.parent-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .72fr);
  align-items: center;
  gap: clamp(50px, 8vw, 110px);
  min-height: 570px;
  padding: 60px 0 70px;
}

.parent-eyebrow,
.parent-section-heading p,
.parent-login-head p {
  margin: 0;
  color: var(--parent-green);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .18em;
}

.parent-hero h1 {
  margin: 18px 0 24px;
  font-size: clamp(44px, 6.2vw, 76px);
  font-weight: 800;
  letter-spacing: -.065em;
  line-height: 1.08;
}

.parent-hero h1 span {
  color: var(--parent-green);
}

.parent-lead {
  margin: 0;
  color: var(--parent-muted);
  font-size: 17px;
  line-height: 1.8;
}

.parent-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 34px;
}

.parent-highlights span {
  padding: 8px 12px;
  border: 1px solid #d6e6e0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .7);
  color: #506b62;
  font-size: 12px;
  font-weight: 700;
}

.parent-login-card {
  position: relative;
  padding: 34px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 28px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 28px 70px rgba(30, 78, 64, .14);
  backdrop-filter: blur(12px);
}

.parent-login-card::before {
  position: absolute;
  top: -85px;
  right: -75px;
  width: 190px;
  height: 190px;
  border-radius: 50%;
  background: var(--parent-mint);
  content: '';
}

.parent-login-page-main { display:grid; min-height:calc(100vh - 170px); padding:42px 0; place-items:center; box-sizing:border-box; } /* [PARENT-LOGIN-SIMPLE-20260718-003] 서비스 홍보 없이 로그인 폼만 중앙 배치 */
.parent-login-page { width:min(430px,100%); }
.parent-login-page-heading { margin-bottom:20px; text-align:center; }
.parent-login-page-heading h1 { margin:9px 0 7px; font-size:30px; letter-spacing:-.045em; }
.parent-login-page-heading > span { color:#71827c; font-size:12px; }
.parent-login-page .parent-login-card { padding:30px; border-radius:22px; }
/* [PORTAL-LOGIN-TABS-CSS-20260825-001] 학생을 기본으로 두고 학부모 로그인으로 명확히 전환하는 역할 탭 */
.portal-login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:22px;padding:5px;border-radius:14px;background:#edf3f1}.portal-login-tabs button{display:block;padding:11px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:#71827c;text-align:left;cursor:pointer}.portal-login-tabs button span,.portal-login-tabs button small{display:block}.portal-login-tabs button span{font-size:13px;font-weight:900}.portal-login-tabs button small{margin-top:3px;font-size:9px}.portal-login-tabs button.is-selected{border-color:#bfd9d0;background:#fff;color:var(--parent-green);box-shadow:0 4px 13px rgba(18,88,70,.08)}

.parent-login-head {
  position: relative;
  display: flex;
  align-items: center;
  gap: 15px;
}

.parent-login-head h2 {
  margin: 5px 0 0;
  font-size: 25px;
  letter-spacing: -.035em;
}

.parent-login-mark {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 16px;
  background: var(--parent-green);
  color: #fff;
}

.parent-login-mark svg,
.parent-service-icon svg {
  width: 24px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.parent-login-preview {
  margin-top: 28px;
}

.parent-login-form,
.parent-login-session { margin-top:28px; } /* [PARENT-LOGIN-20260718-008] 실제 로그인·승인 자녀 요약 영역 */
.parent-login-form label { display:block; margin:15px 0 7px; color:#425c54; font-size:12px; font-weight:800; }
.parent-login-form input:not([type="hidden"]) { width:100%; padding:14px 15px; border:1px solid #dce7e3; border-radius:12px; background:#f8faf9; color:var(--parent-ink); font:inherit; box-sizing:border-box; }
.parent-login-form input:focus { outline:3px solid rgba(18,107,88,.12); border-color:var(--parent-green); }
.parent-login-form > button { width:100%; margin-top:22px; padding:15px; border:0; border-radius:12px; background:var(--parent-green); color:#fff; font-size:15px; font-weight:800; cursor:pointer; }
.parent-login-form > button:hover { background:var(--parent-green-dark); }
.parent-login-error { padding:11px 12px; border:1px solid #efc8c1; border-radius:10px; background:#fff3f1; color:#973f35; font-size:12px; line-height:1.5; }
.parent-welcome { display:flex; align-items:baseline; gap:7px; margin-bottom:13px; }
.parent-welcome strong { font-size:20px; }
.parent-welcome span { color:#71827c; font-size:12px; }
.parent-linked-children { display:grid; gap:8px; }
.parent-linked-children div { padding:11px 12px; border:1px solid #d7e7e1; border-radius:11px; background:#f2f8f5; }
.parent-linked-children span, .parent-linked-children small { display:block; }
.parent-linked-children span { font-size:14px; font-weight:800; }
.parent-linked-children small { margin-top:3px; color:#6c8179; font-size:11px; }
.parent-logout-button { width:100%; margin-top:14px; padding:11px; border:1px solid #cdded8; border-radius:10px; background:#fff; color:#526d64; font-weight:800; cursor:pointer; }
.parent-login-links { display:flex; justify-content:center; flex-wrap:wrap; gap:7px 15px; margin-top:13px; } /* [PARENT-RECOVERY-20260718-007] 계정 복구·회원가입 보조 링크 */
.parent-login-links a { color:var(--parent-green); font-size:12px; font-weight:800; text-decoration:none; }
.parent-login-links span{color:#71827c;font-size:10px;font-weight:700}
.parent-login-links a + a { position:relative; }
.parent-login-links a + a::before { position:absolute; left:-8px; color:#c0cec9; content:'·'; }

.parent-login-preview label {
  display: block;
  margin: 15px 0 7px;
  color: #425c54;
  font-size: 12px;
  font-weight: 800;
}

.parent-input-preview {
  padding: 14px 15px;
  border: 1px solid #dce7e3;
  border-radius: 12px;
  background: #f8faf9;
  color: #9aa8a3;
  font-size: 14px;
}

.parent-login-preview button {
  width: 100%;
  margin-top: 22px;
  padding: 15px;
  border: 0;
  border-radius: 12px;
  background: #9bbab0;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  cursor: not-allowed;
}

.parent-signup-link {
  display: block;
  margin-top: 13px;
  color: var(--parent-green);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.parent-login-note {
  margin: 18px 0 0;
  padding-top: 17px;
  border-top: 1px solid #e8efec;
  color: #7a8b85;
  font-size: 11px;
  line-height: 1.65;
}

.parent-services {
  padding: 70px 0 80px;
  border-top: 1px solid rgba(21, 53, 47, .11);
}

.parent-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 26px;
}

.parent-section-heading h2 {
  margin: 8px 0 0;
  font-size: clamp(25px, 3.4vw, 36px);
  letter-spacing: -.045em;
}

.parent-section-heading > span {
  color: #7b8d87;
  font-size: 12px;
}

.parent-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.parent-service {
  position: relative;
  min-height: 265px;
  padding: 27px;
  overflow: hidden;
  border: 1px solid var(--parent-line);
  border-radius: 21px;
  background: rgba(255, 255, 255, .8);
  color: inherit;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.parent-service-number {
  position: absolute;
  top: 24px;
  right: 25px;
  color: #a7b8b2;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

.parent-service-icon {
  display: grid;
  width: 48px;
  height: 48px;
  margin-bottom: 25px;
  place-items: center;
  border-radius: 15px;
  background: #e7f3ef;
  color: var(--parent-green);
}

.parent-service strong {
  display: block;
  font-size: 19px;
  letter-spacing: -.025em;
}

.parent-service p {
  min-height: 46px;
  margin: 10px 0 22px;
  color: #71827c;
  font-size: 13px;
  line-height: 1.65;
}

.parent-service-action {
  color: var(--parent-green);
  font-size: 13px;
  font-weight: 800;
}

.parent-service-action b {
  margin-left: 5px;
  font-size: 17px;
}

.parent-service.is-available:hover,
.parent-service.is-available:focus-visible {
  border-color: #85b9a8;
  box-shadow: 0 18px 35px rgba(25, 91, 70, .12);
  transform: translateY(-4px);
}

.parent-service.is-upcoming {
  background: rgba(255, 255, 255, .5);
}

.parent-service.is-upcoming .parent-service-action {
  color: #99a9a4;
}

.parent-footer {
  display: flex;
  justify-content: space-between;
  padding: 24px 0 36px;
  border-top: 1px solid rgba(21, 53, 47, .11);
  color: #7c8c87;
  font-size: 12px;
}

.parent-footer a {
  color: #48685e;
}

/* [PARENT-VERIFY-20260718-007] 이메일 인증 폼과 가입 단계 표시 */
.parent-signup-wrap {
  display: grid;
  min-height: calc(100vh - 95px);
  padding: 64px 0 80px;
  place-items: start center;
}

.parent-signup-card {
  width: min(620px, 100%);
  padding: clamp(28px, 5vw, 48px);
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 28px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 28px 70px rgba(30, 78, 64, .12);
}

.parent-signup-card h1 {
  margin: 11px 0 10px;
  font-size: clamp(30px, 5vw, 42px);
  letter-spacing: -.05em;
}

.parent-signup-lead {
  margin: 0;
  color: var(--parent-muted);
  line-height: 1.7;
}

.parent-signup-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 32px 0;
  padding: 0;
  list-style: none;
}

.parent-signup-steps li {
  padding-top: 12px;
  border-top: 2px solid #e3ece8;
  color: #99a8a3;
  font-size: 11px;
}

.parent-signup-steps li.is-current {
  border-color: var(--parent-green);
  color: var(--parent-green);
}

.parent-signup-steps li.is-done {
  border-color: #8ab8a9;
  color: #5b8678;
}

.parent-signup-steps b {
  margin-right: 5px;
}

.parent-form-alert {
  margin-bottom: 18px;
  padding: 13px 15px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.55;
}

.parent-form-alert.is-error {
  border: 1px solid #f0c9c3;
  background: #fff4f2;
  color: #9d3f35;
}

.parent-form-alert.is-success {
  border: 1px solid #c5e3d8;
  background: #eef8f4;
  color: #246957;
}

.parent-verify-form + .parent-verify-form {
  margin-top: 25px;
  padding-top: 24px;
  border-top: 1px solid #e4ece9;
}

.parent-verify-form label {
  display: block;
  margin-bottom: 8px;
  color: #38564d;
  font-size: 13px;
  font-weight: 800;
}

.parent-inline-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
}

.parent-inline-field input {
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid #ccddd7;
  border-radius: 12px;
  background: #fbfdfc;
  color: var(--parent-ink);
  font: inherit;
}

.parent-inline-field input:focus {
  outline: 3px solid rgba(18, 107, 88, .12);
  border-color: var(--parent-green);
}

.parent-inline-field input[readonly] {
  background: #f1f5f3;
  color: #677b74;
}

.parent-inline-field button {
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  background: var(--parent-green);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.parent-code-form input[name="code"] {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: .2em;
  text-align: center;
}

.parent-field-help {
  margin: 9px 0 0;
  color: #7d8d88;
  font-size: 11px;
  line-height: 1.6;
}

.parent-verified-box {
  padding: 26px;
  border: 1px solid #bfe0d4;
  border-radius: 18px;
  background: #eef8f4;
  text-align: center;
}

.parent-verified-box > span {
  display: grid;
  width: 44px;
  height: 44px;
  margin: 0 auto 13px;
  place-items: center;
  border-radius: 50%;
  background: var(--parent-green);
  color: #fff;
  font-size: 23px;
}

.parent-verified-box strong {
  color: var(--parent-green-dark);
}

.parent-verified-box p {
  margin: 10px 0 0;
  color: #61766f;
  font-size: 13px;
  line-height: 1.6;
}

.parent-back-link {
  display: inline-block;
  margin-top: 25px;
  color: #61766f;
  font-size: 13px;
  text-decoration: none;
}

/* [PARENT-SIGNUP-20260718-005] 학부모 계정·자녀정보 입력 및 승인 대기 화면 */
.parent-verified-inline {
  margin-bottom: 25px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #eef8f4;
  color: #3f6d5f;
  font-size: 13px;
}

.parent-verified-inline span {
  display: inline-grid;
  width: 21px;
  height: 21px;
  margin-right: 7px;
  place-items: center;
  border-radius: 50%;
  background: var(--parent-green);
  color: #fff;
}

.parent-account-form fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

.parent-account-form fieldset + fieldset {
  margin-top: 30px;
  padding-top: 27px;
  border-top: 1px solid #e3ece8;
}

.parent-account-form legend {
  margin-bottom: 16px;
  color: var(--parent-ink);
  font-size: 17px;
  font-weight: 850;
}

.parent-form-grid {
  display: grid;
  gap: 15px;
}

.parent-form-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.parent-form-grid label,
.parent-form-grid label > span {
  display: block;
}

.parent-form-grid label > span {
  margin-bottom: 7px;
  color: #3e5a52;
  font-size: 12px;
  font-weight: 800;
}

.parent-form-grid label > span em {
  color: #93a29d;
  font-size: 10px;
  font-style: normal;
}

.parent-form-grid input,
.parent-form-grid select {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #ccddd7;
  border-radius: 11px;
  background: #fbfdfc;
  color: var(--parent-ink);
  font: inherit;
}

.parent-form-grid input:focus,
.parent-form-grid select:focus {
  outline: 3px solid rgba(18, 107, 88, .12);
  border-color: var(--parent-green);
}

.parent-form-grid .wide {
  grid-column: 1 / -1;
}

.parent-field-intro {
  margin: -8px 0 14px;
}

.parent-children-list { display:grid; gap:14px; }
.parent-child-entry { padding:17px; border:1px solid #d8e5e0; border-radius:14px; background:#f9fcfa; }
.parent-child-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }
.parent-child-head strong { color:var(--parent-green-dark); font-size:13px; }
.parent-child-remove { padding:4px 8px; border:0; background:transparent; color:#a14b41; font-size:11px; cursor:pointer; }
.parent-child-add { width:100%; margin-top:12px; padding:11px; border:1px dashed #8fb9ab; border-radius:11px; background:#f3faf7; color:var(--parent-green); font-weight:800; cursor:pointer; }
.parent-child-add:disabled { cursor:not-allowed; opacity:.45; }

.parent-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 28px;
  color: #536b63;
  font-size: 12px;
  line-height: 1.55;
}

.parent-consent input {
  width: 17px;
  height: 17px;
  margin: 1px 0 0;
  accent-color: var(--parent-green);
}

.parent-submit-button {
  width: 100%;
  margin-top: 18px;
  padding: 15px;
  border: 0;
  border-radius: 12px;
  background: var(--parent-green);
  color: #fff;
  font-size: 15px;
  font-weight: 850;
  cursor: pointer;
}

.parent-submit-button:hover,
.parent-submit-button:focus-visible {
  background: var(--parent-green-dark);
}

.parent-pending-box {
  padding: 30px 24px;
  border: 1px solid #c7dfd7;
  border-radius: 18px;
  background: #f0f8f5;
  text-align: center;
}

.parent-pending-box > span {
  display: grid;
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  place-items: center;
  border-radius: 50%;
  background: var(--parent-green);
  color: #fff;
  font-size: 24px;
}

.parent-pending-box h2 {
  margin: 0 0 8px;
  font-size: 22px;
}

.parent-pending-box strong {
  color: var(--parent-green-dark);
}

.parent-pending-box p {
  margin: 14px 0 0;
  color: #647a72;
  font-size: 13px;
  line-height: 1.7;
}

/* [PARENT-RECOVERY-20260718-008] 아이디 확인·새 비밀번호 설정 화면 */
.parent-recovery-card { width:min(660px,100%); }
.parent-recovery-card .parent-form-alert { margin-top:22px; margin-bottom:0; }
.parent-change-email { display:inline-block; margin-top:9px; color:#71827c; font-size:11px; }
.parent-found-account { margin:28px 0 22px; padding:20px; border:1px solid #bcded2; border-radius:15px; background:#eef8f4; text-align:center; }
.parent-found-account span, .parent-found-account strong { display:block; }
.parent-found-account span { color:#5e776f; font-size:12px; }
.parent-found-account strong { margin-top:6px; color:var(--parent-green-dark); font-size:24px; letter-spacing:.02em; }
.parent-recovery-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:24px; } /* [PARENT-RECOVERY-STEP-20260718-004] 로그인과 비밀번호 재설정 선택 분리 */
.parent-recovery-actions form { margin:0; }
.parent-recovery-actions a, .parent-recovery-actions button { display:grid; width:100%; min-height:46px; padding:10px 13px; place-items:center; border:1px solid #b9d7cd; border-radius:11px; background:#fff; color:var(--parent-green); font:inherit; font-size:13px; font-weight:800; text-decoration:none; box-sizing:border-box; cursor:pointer; }
.parent-recovery-actions button { border-color:var(--parent-green); background:var(--parent-green); color:#fff; }
.parent-reset-heading { margin-top:26px; padding-top:22px; border-top:1px solid #e1eae7; }
.parent-reset-heading strong, .parent-reset-heading span { display:block; }
.parent-reset-heading strong { font-size:17px; }
.parent-reset-heading span { margin-top:4px; color:#75867f; font-size:11px; }
.parent-reset-form { display:grid; gap:15px; margin-top:24px; }
.parent-reset-form label, .parent-reset-form label span { display:block; }
.parent-reset-form label span { margin-bottom:7px; color:#3e5a52; font-size:12px; font-weight:800; }
.parent-reset-form input { width:100%; padding:14px 15px; border:1px solid #ccddd7; border-radius:12px; background:#fbfdfc; color:var(--parent-ink); font:inherit; box-sizing:border-box; }
.parent-reset-form input:focus { outline:3px solid rgba(18,107,88,.12); border-color:var(--parent-green); }
.parent-recovery-complete { margin-top:30px; padding:28px; border:1px solid #bfe0d4; border-radius:18px; background:#eef8f4; text-align:center; }
.parent-recovery-complete > span { display:grid; width:46px; height:46px; margin:0 auto 13px; place-items:center; border-radius:50%; background:var(--parent-green); color:#fff; font-size:23px; }
.parent-recovery-complete h2 { margin:0 0 9px; font-size:22px; }
.parent-recovery-complete p { color:#61766f; font-size:13px; line-height:1.6; }
.parent-recovery-complete a { display:inline-block; margin-top:8px; padding:11px 18px; border-radius:10px; background:var(--parent-green); color:#fff; font-size:13px; font-weight:800; text-decoration:none; }

/* [PARENT-DASHBOARD-20260718-004] 로그인 후 학부모 전용 대시보드 */
.parent-dashboard-layout { background:#f5f8f6; }
.parent-dashboard-shell { width:min(1180px,calc(100% - 40px)); margin:0 auto; color:var(--parent-ink); }
.parent-dashboard-topbar { display:flex; align-items:center; justify-content:space-between; min-height:86px; border-bottom:1px solid #dbe7e2; }
.parent-dashboard-account { display:flex; align-items:center; gap:14px; color:#5d736b; font-size:12px; }
.parent-dashboard-account strong { color:var(--parent-ink); }
.parent-dashboard-account form { margin:0; }
.parent-dashboard-account button { padding:8px 11px; border:1px solid #cfddd8; border-radius:9px; background:#fff; color:#5a7169; font-size:11px; font-weight:800; cursor:pointer; }
.parent-dashboard-main { padding:34px 0 70px; }
.parent-dashboard-welcome { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:36px 40px; overflow:hidden; border-radius:24px; background:linear-gradient(125deg,#0f5e4e,#16806a); color:#fff; box-shadow:0 18px 45px rgba(18,92,74,.16); }
.parent-dashboard-welcome p, .parent-dashboard-heading p { margin:0 0 8px; font-size:10px; font-weight:900; letter-spacing:.17em; }
.parent-dashboard-welcome p { color:#b8dfd3; }
.parent-dashboard-welcome h1 { margin:0 0 12px; font-size:clamp(28px,4vw,43px); font-weight:500; letter-spacing:-.045em; line-height:1.16; }
.parent-dashboard-welcome h1 strong { color:#fff1bd; }
.parent-dashboard-welcome > div > span { color:#cce6de; font-size:13px; }
.parent-dashboard-date { display:grid; min-width:125px; height:125px; place-content:center; border:1px solid rgba(255,255,255,.23); border-radius:50%; background:rgba(255,255,255,.08); text-align:center; }
.parent-dashboard-date small { color:#c2e3da; font-size:10px; }
.parent-dashboard-date strong { font-size:42px; line-height:1; }
.parent-dashboard-date span { font-size:11px; }
.parent-dashboard-section { margin-top:40px; }
.parent-dashboard-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:16px; }
.parent-dashboard-heading p { color:var(--parent-green); }
.parent-dashboard-heading h2 { margin:0; font-size:24px; letter-spacing:-.035em; }
.parent-dashboard-heading > span { color:#7c8d87; font-size:11px; }
.parent-dashboard-child-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.parent-dashboard-child-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; padding:18px; border:1px solid #dce8e3; border-radius:16px; background:#fff; }
.parent-child-avatar { display:grid; width:56px; height:70px; overflow:hidden; place-items:center; border-radius:12px; background:#e4f2ed; color:var(--parent-green); font-size:19px; font-weight:900; } /* [PARENT-STUDENT-PHOTO-20260718-005] 학생 증명사진 비율 카드 */
.parent-child-avatar.has-photo { background:#edf2f0; }
.parent-child-avatar img { width:100%; height:100%; object-fit:cover; object-position:top center; }
.parent-dashboard-child-card small { color:#8a9a94; font-size:10px; }
.parent-dashboard-child-card h3 { margin:2px 0 4px; font-size:17px; }
.parent-dashboard-child-card p { margin:0; color:#71827c; font-size:11px; }
.parent-child-approved { padding:5px 8px; border-radius:999px; background:#eaf7f2; color:#28725e; font-size:10px; font-weight:800; }
.parent-course-child-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } /* [PARENT-ACADEMIC-CSS-20260824-001] 자녀별 교과 요약 카드 */
.parent-course-child-card { padding:18px; border:1px solid #dce8e3; border-radius:16px; background:#fff; }
.parent-course-child-card header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:12px; border-bottom:1px solid #edf2f0; }
.parent-course-child-card header strong { font-size:16px; }
.parent-course-child-card header span { color:var(--parent-green); font-size:11px; font-weight:800; }
.parent-course-child-card ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:12px 0 0; padding:0; list-style:none; }
.parent-course-child-card li { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 11px; border-radius:10px; background:#f3f8f6; }
.parent-course-child-card li span { overflow:hidden; font-size:13px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.parent-course-child-card li small { flex:0 0 auto; color:#738780; font-size:10px; }
.parent-course-child-card > p { margin:14px 0 0; color:#71827c; font-size:12px; }
.parent-dashboard-menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.parent-dashboard-menu { position:relative; display:flex; min-height:135px; padding:21px; border:1px solid #dce8e3; border-radius:17px; background:#fff; color:inherit; text-decoration:none; box-sizing:border-box; }
.parent-dashboard-menu > span { margin-right:14px; color:#9aaba5; font-size:10px; font-weight:900; }
.parent-dashboard-menu strong { display:block; font-size:16px; }
.parent-dashboard-menu p { margin:8px 0 0; color:#788983; font-size:11px; line-height:1.55; }
.parent-dashboard-menu b, .parent-dashboard-menu em { position:absolute; right:18px; bottom:17px; color:var(--parent-green); font-size:14px; font-style:normal; }
.parent-dashboard-menu em { color:#9aa9a4; font-size:10px; }
.parent-dashboard-menu.is-active { border-color:#b5d8cc; transition:transform .18s ease,box-shadow .18s ease; }
.parent-dashboard-menu.is-active:hover { box-shadow:0 12px 28px rgba(25,91,70,.1); transform:translateY(-2px); }
.parent-dashboard-footer { display:flex; justify-content:space-between; padding:23px 0 30px; border-top:1px solid #dbe7e2; color:#81918c; font-size:11px; }
.parent-dashboard-account > a { color:var(--parent-green); font-size:12px; font-weight:800; text-decoration:none; } /* [PARENT-MID-GROWTH-CSS-20260824-001] 중등 학습 성장 화면 기본 구조 */
.parent-growth-hero { padding:34px 36px; border-radius:24px; background:var(--parent-ink); color:#fff; }
.parent-growth-hero p { margin:0 0 8px; color:#a9d9ca; font-size:10px; font-weight:900; letter-spacing:.16em; }
.parent-growth-hero h1 { margin:0; font-size:34px; letter-spacing:-.045em; }
.parent-growth-hero span { display:block; margin-top:10px; color:#c9d8d3; font-size:13px; }
.parent-growth-students { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.parent-growth-students a { min-width:150px; padding:12px 14px; border:1px solid #dce8e3; border-radius:12px; background:#fff; color:inherit; text-decoration:none; }
.parent-growth-students a strong, .parent-growth-students a span { display:block; }
.parent-growth-students a span { margin-top:3px; color:#71827c; font-size:10px; }
.parent-growth-students a.is-selected { border-color:var(--parent-green); background:#edf7f3; }
/* [PARENT-GROWTH-TERM-FILTER-CSS-20260825-001] 학기 필터와 압축형 과목 선택 버튼 */
.parent-growth-term-filter { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.parent-growth-term-filter a { min-width:72px; padding:9px 14px; border:1px solid #d4e2dd; border-radius:999px; background:#fff; color:#62756e; font-size:12px; font-weight:800; text-align:center; text-decoration:none; }
.parent-growth-term-filter a:hover { border-color:#9ccbbb; color:var(--parent-green); }
.parent-growth-term-filter a.is-selected { border-color:var(--parent-green); background:var(--parent-green); color:#fff; }
.parent-growth-course-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.parent-growth-course-card { display:flex; min-height:62px; align-items:center; justify-content:space-between; gap:10px; padding:13px 15px; border:1px solid #dce8e3; border-radius:12px; background:#fff; box-sizing:border-box; }
.parent-growth-course-card h3 { overflow:hidden; margin:0; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.parent-growth-course-card > span { flex:0 0 auto; color:#8a9994; font-size:9px; white-space:nowrap; }
.parent-growth-course-grid a.parent-growth-course-card { color:inherit; text-decoration:none; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.parent-growth-course-grid a.parent-growth-course-card:hover { border-color:#b5d8cc; box-shadow:0 7px 18px rgba(25,91,70,.07); transform:translateY(-1px); }
.parent-growth-course-card.is-selected { border-color:var(--parent-green); background:#f0f8f5; box-shadow:0 7px 18px rgba(25,91,70,.07); }
.parent-growth-course-card.is-selected>span { color:var(--parent-green); font-weight:800; }
.parent-growth-empty { margin-top:20px; padding:28px; border:1px dashed #cdded8; border-radius:16px; background:#fff; text-align:center; }
.parent-growth-empty p { margin:7px 0 0; color:#71827c; font-size:12px; }
/* [PARENT-GROWTH-LIVE-CSS-20260825-001] 학부모 전용 최종 그래프·공개 활동·입력 평가 결과 */
.parent-growth-detail{margin-top:42px;scroll-margin-top:18px}.parent-growth-detail-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}.parent-growth-detail-head p{margin:0 0 6px;color:var(--parent-green);font-size:10px;font-weight:900}.parent-growth-detail-head h2{margin:0;font-size:26px;letter-spacing:-.04em}.parent-growth-detail-head>span{color:#7c8d87;font-size:10px}.parent-growth-radar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.parent-growth-radar-card{position:relative;padding:17px 17px 10px;border:1px solid #dce8e3;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(25,91,70,.05)}.parent-growth-radar-card>header{display:flex;align-items:center;gap:9px}.parent-growth-radar-card>header span{display:grid;width:27px;height:27px;place-content:center;border-radius:8px;background:#eaf7f2;color:var(--parent-green);font-size:9px;font-weight:900}.parent-growth-radar-card h3{margin:0;font-size:14px}.parent-growth-radar-card svg{display:block;width:100%;max-height:245px;margin:2px auto 0}.parent-radar-grid-line{fill:none;stroke:#dce8e3;stroke-width:1}.parent-radar-axis{stroke:#e7eeeb;stroke-width:1}.parent-growth-radar-card text{fill:#6f827b;font-size:8px;font-weight:750}.parent-radar-value{stroke-width:2;stroke-linejoin:round}.parent-radar-value--1{fill:rgba(18,107,88,.18);stroke:#126b58}.parent-radar-value--2{fill:rgba(202,145,40,.16);stroke:#b87815}.parent-radar-value--3{fill:rgba(77,119,172,.14);stroke:#4d77ac}.parent-growth-radar-card>p{position:absolute;left:50%;top:54%;margin:0;transform:translate(-50%,-50%);color:#91a09b;font-size:9px;font-weight:800;white-space:nowrap}.parent-growth-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;margin-top:14px}.parent-growth-data-card{overflow:hidden;border:1px solid #dce8e3;border-radius:17px;background:#fff}.parent-growth-data-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e8efec}.parent-growth-data-card>header p{margin:0 0 5px;color:var(--parent-green);font-size:8px;font-weight:900;letter-spacing:.13em}.parent-growth-data-card>header h3{margin:0;font-size:18px}.parent-growth-data-card>header>strong{color:var(--parent-green);font-size:12px}.parent-growth-activity-list>article{padding:16px 19px;border-bottom:1px solid #edf2f0}.parent-growth-activity-list>article:last-child{border-bottom:0}.parent-growth-item-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.parent-growth-item-head span{display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf7f3;color:var(--parent-green);font-size:8px;font-weight:900}.parent-growth-item-head h4{margin:7px 0 0;font-size:14px}.parent-growth-item-head>strong{color:var(--parent-green);font-size:20px}.parent-growth-activity-list article>p{margin:8px 0;color:#71827c;font-size:10px;line-height:1.55;white-space:pre-wrap}.parent-growth-activity-list progress{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden}.parent-growth-activity-list progress::-webkit-progress-bar{background:#e7efec}.parent-growth-activity-list progress::-webkit-progress-value{background:linear-gradient(90deg,#65ad96,#126b58)}.parent-growth-activity-list progress::-moz-progress-bar{background:linear-gradient(90deg,#65ad96,#126b58)}.parent-growth-activity-list footer{display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:#7b8c86;font-size:9px}.parent-growth-activity-list footer b{color:#40564e}.parent-growth-card-empty{display:grid;min-height:150px;place-items:center;padding:25px;color:#80918b;font-size:11px}.parent-growth-score-wrap{overflow-x:auto}.parent-growth-score-table{width:100%;min-width:580px;border-collapse:collapse}.parent-growth-score-table th,.parent-growth-score-table td{padding:11px 12px;border-bottom:1px solid #edf2f0;text-align:center;vertical-align:middle}.parent-growth-score-table th{background:#f8fbfa;color:#71827c;font-size:9px}.parent-growth-score-table tbody tr:last-child td{border-bottom:0}.parent-growth-score-table th:first-child,.parent-growth-score-table td:first-child{text-align:left}.parent-growth-score-table td:first-child span,.parent-growth-score-table td:first-child strong{display:block}.parent-growth-score-table td:first-child span{color:var(--parent-green);font-size:8px;font-weight:900}.parent-growth-score-table td:first-child strong{margin-top:4px;font-size:11px}.parent-growth-score-table td>b{display:inline-flex;min-width:34px;justify-content:center;padding:5px 6px;border-radius:7px;color:#71827c;font-size:10px}.parent-growth-score-table td>b.is-selected{background:#edf7f3;color:var(--parent-green)}.parent-growth-final-score{display:inline-flex;min-width:37px;justify-content:center;padding:6px 7px;border-radius:8px;background:#eaf7f2;color:var(--parent-green);font-size:11px}

/* [PARENT-GROWTH-READABILITY-CSS-20260825-001] 카드 여백·차트 높이는 줄이고 그래프 축·활동·평가 글자는 추가 확대 */
.parent-growth-radar-card { padding:14px 16px 8px; }
.parent-growth-radar-card>header span { width:30px; height:30px; font-size:12px; }
.parent-growth-radar-card h3 { font-size:19px; }
.parent-growth-radar-card svg { height:205px; max-height:205px; margin-top:-2px; }
.parent-growth-radar-card text { fill:#405b52; font-size:12.5px; font-weight:850; }
.parent-growth-radar-card>p { color:#5f766e; font-size:14px; }
.parent-growth-data-card>header { padding:16px 18px; }
.parent-growth-data-card>header p { font-size:10px; }
.parent-growth-data-card>header h3 { font-size:22px; }
.parent-growth-data-card>header>strong { font-size:16px; }
.parent-growth-activity-list>article { padding:15px 18px; }
.parent-growth-item-head span { padding:5px 8px; font-size:11px; }
.parent-growth-item-head h4 { margin-top:7px; font-size:18px; }
.parent-growth-item-head>strong { font-size:25px; }
.parent-growth-activity-list article>p { margin:8px 0; color:#50685f; font-size:14px; }
.parent-growth-activity-list progress { height:9px; }
.parent-growth-activity-list footer { margin-top:8px; color:#536b62; font-size:12px; }
.parent-growth-card-empty { min-height:120px; color:#5d746c; font-size:15px; }
.parent-growth-score-table th,.parent-growth-score-table td { padding:11px 12px; }
.parent-growth-score-table th { color:#50685f; font-size:13px; }
.parent-growth-score-table td:first-child span { font-size:11px; }
.parent-growth-score-table td:first-child strong { margin-top:4px; font-size:15px; }
.parent-growth-score-table td>b { min-width:38px; padding:6px 7px; font-size:14px; }
.parent-growth-final-score { min-width:40px; padding:7px 8px; font-size:15px; }

/* [STUDENT-GROWTH-SUBMISSION-CSS-20260825-001] 학생 자료 제출 버튼·코멘트·파일 입력과 제출 상태 */
.parent-growth-submission{margin:14px 0 0;padding:13px;border:1px solid #dce8e3;border-radius:12px;background:#f8fbfa}.parent-growth-submission.has-submission{border-color:#b9ddcf;background:#f1f9f6}.parent-growth-submission-status{display:flex;align-items:center;justify-content:space-between;gap:10px}.parent-growth-submission-status strong{color:var(--parent-green);font-size:13px}.parent-growth-submission-status span{color:#647970;font-size:11px}.parent-growth-submission details{margin-top:10px}.parent-growth-submission summary{display:inline-flex;min-height:38px;align-items:center;padding:0 14px;border-radius:9px;background:var(--parent-green);color:#fff;font-size:13px;font-weight:900;cursor:pointer;list-style:none}.parent-growth-submission summary::-webkit-details-marker{display:none}.parent-growth-submission form{display:grid;gap:11px;margin-top:12px;padding-top:12px;border-top:1px solid #dce8e3}.parent-growth-submission form label{display:grid;gap:6px}.parent-growth-submission form label>span{color:#40584f;font-size:12px;font-weight:850}.parent-growth-submission form small{color:#7b8e87;font-size:10px}.parent-growth-submission textarea,.parent-growth-submission input[type=file]{width:100%;padding:10px 11px;border:1px solid #cbdcd6;border-radius:9px;background:#fff;color:#18372e;font:inherit;box-sizing:border-box}.parent-growth-submission textarea{resize:vertical;font-size:13px;line-height:1.55}.parent-growth-submission input[type=file]{font-size:11px}.parent-growth-submission-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.parent-growth-submission-actions a{overflow:hidden;color:var(--parent-green);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.parent-growth-submission-actions button{min-height:40px;padding:0 15px;border:0;border-radius:9px;background:#176f5c;color:#fff;font-size:13px;font-weight:900;cursor:pointer}.parent-growth-submission-message{margin:9px 0 0!important;padding:8px 10px;border-radius:8px;font-size:12px!important;font-weight:800}.parent-growth-submission-message.is-success{background:#e2f5ed;color:#14624f}.parent-growth-submission-message.is-error{background:#fff0ed;color:#a23b2e}.parent-growth-parent-submission{margin:8px 0 0!important;color:#61766e!important;font-size:12px!important}

/* [STUDENT-PORTAL-DASHBOARD-CSS-20260825-001] 학생 본인 전용 홈의 색상과 단일 프로필 카드 */
/* [STUDENT-COMPACT-HEADER-20260910-001] 학생 홈 장식 카드를 작은 제목으로 바꾸고 로고·상단 여백 축소 */
.student-dashboard-shell .parent-wordmark-logo { width:140px; height:58px; }
.student-dashboard-shell .parent-dashboard-topbar { min-height:72px; gap:12px; }
.student-dashboard-shell .parent-dashboard-main { padding-top:20px; }
/* [STUDENT-PROFILE-FIRST-20260910-001] 최상단 나의 정보는 본문 위쪽 여백만 사용 */
.student-dashboard-shell .parent-dashboard-main > .parent-dashboard-section:first-child { margin-top:0; }
.student-dashboard-shell .student-homework-section { margin-top:24px; }
/* [STUDENT-HOMEWORK-STATUS-20260910-001] 분량 완료·검사 대기 문구가 옆 숙제 제목을 침범하지 않게 줄바꿈 */
.student-dashboard-shell .student-homework-status span { max-width:100%; box-sizing:border-box; white-space:normal; line-height:1.4; }
.student-profile-card{max-width:560px}.student-profile-card .parent-child-approved{background:#eaf2fb;color:#285f91}
/* [STUDENT-COURSE-TERM-FILTER-CSS-20260825-001] 학생 홈 수강 교과를 학기별 3열 압축 목록으로 표시 */
.student-course-term-filter{margin-bottom:12px}.student-course-card ul{grid-template-columns:repeat(3,minmax(0,1fr))}.student-course-card li{min-height:44px;padding:0;box-sizing:border-box}.student-course-card li a{display:flex;width:100%;min-width:0;min-height:44px;align-items:center;justify-content:space-between;gap:10px;padding:0 13px;border-radius:10px;color:#173d32;text-decoration:none;box-sizing:border-box}.student-course-card li a:hover{background:#e6f2ed;color:#0f6b57}.student-course-card li span{width:auto}.student-course-card li b{flex:0 0 auto;color:#1b755f;font-size:16px} /* [STUDENT-COURSE-GROWTH-LINK-CSS-20260910-001] 과목 전체를 클릭 가능한 학습 성장 링크로 표시 */
/* [STUDENT-DASHBOARD-HOMEWORK-LIST-CSS-20260909-001] 학생 홈 과목 통합 숙제를 읽기 쉬운 가로 목록으로 표시 */
.student-homework-section{margin-top:34px}.student-homework-list{overflow:hidden;border:1px solid #d7e4df;border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(27,66,54,.06)}.student-homework-list article{display:grid;grid-template-columns:130px minmax(230px,1fr) 115px 120px 150px 100px;align-items:center;gap:18px;padding:18px 20px;border-bottom:1px solid #e4ece9}.student-homework-list article:last-child{border-bottom:0}.student-homework-list article.is-overdue{background:#fffafa}.student-homework-status span,.student-homework-status strong,.student-homework-range span,.student-homework-range strong,.student-homework-due span,.student-homework-due strong{display:block}.student-homework-status span{width:max-content;padding:5px 8px;border-radius:999px;background:#e8f2fb;color:#285f91;font-size:11px;font-weight:900}.student-homework-status span.is-done{background:#e4f5ed;color:#176f5c}.student-homework-status span.is-late{background:#ffebe8;color:#b33d31}.student-homework-status strong{margin-top:7px;color:#173d32;font-size:15px}.student-homework-content{min-width:0}.student-homework-content h3{margin:0;color:#142d26;font-size:17px}.student-homework-content p{margin:6px 0 0;overflow:hidden;color:#647970;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.student-homework-range span,.student-homework-due span,.student-homework-progress span{color:#758a82;font-size:11px}.student-homework-range strong,.student-homework-due strong{margin-top:5px;color:#213b33;font-size:14px}.student-homework-progress>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.student-homework-progress strong{color:#176f5c;font-size:15px}.student-homework-progress progress{width:100%;height:8px;margin-top:8px;border:0;border-radius:999px;overflow:hidden}.student-homework-progress progress::-webkit-progress-bar{background:#e7efec}.student-homework-progress progress::-webkit-progress-value{background:#1d7b67}.student-homework-progress progress::-moz-progress-bar{background:#1d7b67}.student-homework-link{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border-radius:10px;background:#176f5c;color:#fff;font-size:13px;font-weight:900;text-decoration:none}.student-homework-link:hover{background:#105b4b}.student-homework-empty{padding:34px;border:1px dashed #bfd3cb;border-radius:16px;background:#f8fbfa;text-align:center}.student-homework-empty strong{font-size:16px}.student-homework-empty p{margin:7px 0 0;color:#6b8078;font-size:13px}
@media(max-width:1100px){.student-homework-list article{grid-template-columns:120px minmax(220px,1fr) 110px 135px 96px}.student-homework-range{display:none}}

@media (max-width: 900px) {
  .parent-hero {
    grid-template-columns: 1fr;
    gap: 42px;
    padding: 55px 0 65px;
  }

  .parent-login-card {
    max-width: 520px;
  }

  .parent-service-grid {
    grid-template-columns: 1fr 1fr;
  }

  .parent-dashboard-menu-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 620px) {
  .parent-shell {
    width: min(100% - 28px, 1180px);
  }

  .parent-topbar {
    min-height: 78px;
  }

  .parent-wordmark-logo { width:210px; height:88px; } /* [PARENT-ALT-LOGO-20260718-010] 모바일에서도 공식 문구가 읽히는 크기 유지 */

  .parent-secure-label {
    display: none;
  }

  .parent-hero {
    min-height: auto;
    padding-top: 45px;
  }

  .parent-hero h1 {
    font-size: clamp(39px, 12vw, 54px);
  }

  .desktop-break {
    display: none;
  }

  .parent-login-card {
    padding: 25px;
    border-radius: 22px;
  }

  .parent-login-page-main { min-height:calc(100vh - 145px); padding:28px 0 38px; }
  .parent-login-page-heading h1 { font-size:27px; }

  .parent-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .parent-service-grid {
    grid-template-columns: 1fr;
  }

  .parent-service {
    min-height: 245px;
  }

  .parent-footer {
    flex-direction: column;
    gap: 10px;
  }

  .parent-signup-wrap {
    padding: 30px 0 50px;
  }

  .parent-signup-card {
    padding: 25px 20px;
    border-radius: 21px;
  }

  .parent-inline-field {
    grid-template-columns: 1fr;
  }

  .parent-inline-field button {
    min-height: 48px;
  }

  .parent-form-grid.two {
    grid-template-columns: 1fr;
  }

  .parent-form-grid .wide {
    grid-column: auto;
  }

  .parent-recovery-actions { grid-template-columns:1fr; }

  .parent-dashboard-shell { width:min(100% - 24px,1180px); }
  .parent-dashboard-topbar { min-height:76px; }
  .parent-dashboard-account > span { display:none; }
  .parent-dashboard-main { padding:22px 0 50px; }
  .parent-dashboard-welcome { padding:27px 23px; border-radius:19px; }
  .parent-dashboard-welcome > div > span { font-size:11px; }
  .parent-dashboard-date { min-width:82px; width:82px; height:82px; }
  .parent-dashboard-date strong { font-size:30px; }
  .parent-dashboard-heading { align-items:flex-start; flex-direction:column; gap:5px; }
  .parent-dashboard-child-grid, .parent-dashboard-menu-grid, .parent-course-child-list { grid-template-columns:1fr; } /* [PARENT-ACADEMIC-CSS-20260824-002] 모바일에서 자녀별 교과 카드 단일 열 */
  .parent-course-child-card ul { grid-template-columns:1fr; }
  .student-course-card ul { grid-template-columns:repeat(2,minmax(0,1fr)); } /* [STUDENT-COURSE-TERM-FILTER-MOBILE-20260825-001] 모바일 학생 교과는 두 열 유지 */
  .student-homework-list article { grid-template-columns:1fr auto; gap:12px; padding:17px 16px; } /* [STUDENT-DASHBOARD-HOMEWORK-LIST-MOBILE-20260909-001] 모바일 숙제 목록 압축 배치 */
  .student-homework-status,.student-homework-content { grid-column:1/-1; }
  .student-homework-due { grid-column:1; }
  .student-homework-progress { grid-column:1; }
  .student-homework-link { grid-column:2; grid-row:4; min-width:92px; }
  .parent-dashboard-section { margin-top:30px; }
  .parent-dashboard-footer { flex-direction:column; gap:6px; }
  .parent-growth-hero { padding:25px 22px; } /* [PARENT-MID-GROWTH-CSS-20260824-002] 중등 학습 성장 모바일 배치 */
  .parent-growth-hero h1 { font-size:28px; }
  .parent-growth-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } /* [PARENT-GROWTH-TERM-FILTER-MOBILE-20260825-001] 모바일에서도 과목을 두 칸으로 압축 */
  .parent-growth-detail-head { align-items:flex-start; flex-direction:column; gap:5px; }
  .parent-growth-radar-grid, .parent-growth-data-grid { grid-template-columns:1fr; }
}

/* [STUDENT-HOMEWORK-ACTIONS-20260910-001] 제출 버튼 없는 숙제는 남은 너비를 제목과 진행률에 사용 */
@media(min-width:1101px){.student-homework-list article.is-information-only{grid-template-columns:130px minmax(230px,1fr) 115px 120px 150px}}
@media(min-width:621px) and (max-width:1100px){.student-homework-list article.is-information-only{grid-template-columns:120px minmax(0,1fr) 110px 135px}}
@media(max-width:620px){.student-homework-list article.is-information-only .student-homework-progress{grid-column:1/-1}}

/* [STYLE-STUDENT-PASSWORD-20260910-001] 첫 로그인 비밀번호 입력 화면 */
.student-password-page{max-width:440px;margin:8vh auto;padding:28px;background:white;border:1px solid #d4e3de;border-radius:16px}
.student-password-page h1{font-size:24px}.student-password-page p{line-height:1.7}.student-password-page label{display:grid;gap:8px;margin:18px 0}
.student-password-page input{padding:12px;border:1px solid #bed5ce;border-radius:8px;width:100%;box-sizing:border-box}
.student-password-page button{padding:10px 18px;background:#146d59;color:white;border:0;border-radius:8px;margin-bottom:12px}.student-password-page [role=alert]{color:#b42318}

/* [STYLE-PARENT-FAMILY-20260910-001] 학부모 홈의 크기·간격을 줄이고 본문 대비 강화 */
.parent-family-dashboard{color:#203830;font-size:14px}
.parent-family-dashboard .parent-wordmark-logo{width:145px;height:62px}
.parent-family-dashboard .parent-dashboard-topbar{min-height:78px;gap:12px}
.parent-family-dashboard .parent-dashboard-main{padding:20px 0 36px}
.parent-family-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.parent-family-title h1{font-size:22px;margin:0;font-weight:750}
.parent-family-title span,.parent-family-dashboard .parent-dashboard-heading>span{font-size:12px;color:#425c52}
.parent-family-dashboard .parent-dashboard-section{margin-top:24px}
.parent-family-dashboard .parent-dashboard-heading{margin-bottom:12px;gap:12px;flex-wrap:wrap}
.parent-family-dashboard .parent-dashboard-heading h2{font-size:18px;font-weight:750}
.parent-family-dashboard .parent-dashboard-child-card{padding:14px;gap:12px;border-radius:12px}
.parent-family-dashboard .parent-child-avatar{width:44px;height:56px;border-radius:9px}
.parent-family-dashboard .parent-dashboard-child-card h3{font-size:15px;margin:4px 0}
.parent-family-dashboard .parent-dashboard-child-card p,.parent-family-dashboard .parent-dashboard-child-card small{color:#425c52;font-size:12px}
.parent-family-dashboard .parent-child-approved{font-size:11px;color:#155e4c}
.parent-family-dashboard .parent-course-child-card{padding:14px;border-radius:12px}
.parent-family-dashboard .parent-course-child-card header strong{font-size:15px}
.parent-family-dashboard .parent-course-child-card header span{font-size:12px;color:#225b49}
.parent-family-dashboard .parent-course-child-card ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-top:8px} /* [STYLE-PARENT-FAMILY-20260910-002] 모바일에서도 교과를 두 열로 압축 */
.parent-family-dashboard .parent-course-child-card li{background:transparent;border-bottom:1px solid #e2e9e5;border-radius:0;padding:9px 2px}
.parent-family-dashboard .parent-course-child-card li span{font-size:13px;font-weight:600;white-space:normal;overflow-wrap:anywhere;color:#203830}
.parent-family-dashboard .parent-course-child-card>p{color:#425c52;font-size:13px}
.parent-family-filters{display:flex;align-items:end;gap:12px;padding:12px 14px;margin-bottom:12px;background:#fff;border:1px solid #d4e1da;border-radius:10px}
.parent-family-filters label{display:grid;gap:5px;font-size:12px;color:#314c40;font-weight:650}
.parent-family-filters select{min-width:130px;padding:8px 10px;background:#fff;border:1px solid #b6c9bf;border-radius:7px;font:inherit;font-size:13px;color:#203830}
.parent-family-filters button{padding:9px 18px;border:0;border-radius:7px;background:#146d59;color:#fff;font-size:13px;cursor:pointer}
.parent-family-dashboard .parent-dashboard-menu{min-height:108px;padding:16px;border-radius:12px}
.parent-family-dashboard .parent-dashboard-menu strong{font-size:14px}
.parent-family-dashboard .parent-dashboard-menu p,.parent-family-dashboard .parent-dashboard-menu>span,.parent-family-dashboard .parent-dashboard-menu em,.parent-family-dashboard .parent-dashboard-footer{color:#425c52;font-size:12px}
.parent-family-dashboard .parent-dashboard-account,.parent-family-dashboard .parent-dashboard-account button{color:#344f43}
@media(max-width:600px){
  .parent-family-dashboard .parent-dashboard-child-grid,.parent-family-dashboard .parent-course-child-list,.parent-family-dashboard .parent-dashboard-menu-grid{grid-template-columns:1fr}
  .parent-family-filters{flex-wrap:wrap;gap:10px}.parent-family-filters select{min-width:105px}
  .parent-family-dashboard .parent-dashboard-account>span{display:block;font-size:11px}
  .parent-family-dashboard .parent-wordmark-logo{width:115px;height:52px}
}

/* [STUDENT-HOMEWORK-FOCUS-20260911-001] 숙제 제목·범위를 우선하며 과목별 할 일과 접은 기록을 구분 */
.student-homework-overview{display:flex;flex-wrap:wrap;gap:10px 22px;margin:16px 0 22px;color:#637b71;font-size:13px}
.student-homework-overview strong{color:#173d32;font-size:17px;margin-left:5px}
.student-homework-subject{margin:18px 0}
.student-homework-subject>header{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.student-homework-subject>header h3{margin:0;color:#173d32;font-size:18px}
.student-homework-subject>header span{color:#647970;font-size:12px}
.student-homework-section .student-homework-content h4{margin:0;color:#142d26;font-size:17px;line-height:1.5}
.student-homework-section .student-homework-content p{white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.student-homework-section .student-homework-range{display:block}
.student-homework-archive{margin-top:18px;padding:0 18px;border:1px solid #d7e4df;border-radius:14px;background:#fff}
.student-homework-archive>summary{padding:18px 0;cursor:pointer;color:#294d40;font-size:14px}
.student-homework-archive>summary strong{margin-left:8px}
.student-homework-archive>summary>span{float:right;color:#647970;font-size:12px}
.student-homework-archive[open]>summary>span{display:none}
.student-homework-archive>summary:focus-visible{outline:2px solid #176f5c;outline-offset:4px}
@media(min-width:621px){.student-homework-section .student-homework-list article,.student-homework-section .student-homework-list article.is-information-only{grid-template-columns:120px minmax(160px,1fr) 100px 105px;gap:14px}.student-homework-section .student-homework-progress{grid-column:2}.student-homework-section .student-homework-link{grid-column:4;min-height:36px}.student-homework-section .student-homework-progress progress{margin-top:3px}}
@media(max-width:620px){.student-homework-section .student-homework-range{grid-column:1/-1}.student-homework-section .student-homework-link{grid-row:auto}.student-homework-section .student-homework-list article{grid-template-columns:minmax(0,1fr) auto}.student-homework-archive{padding:0 12px}.student-homework-overview{gap:8px 16px}}

/* [PORTAL-GARDEN-20260913-001] 크림·숲색과 동산 일러스트로 구성한 로그인 전용 디자인 */
.parent-login-page-layout{--parent-ink:#173e35;--parent-green:#184c40;--parent-green-dark:#10372e;font-family:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif;font-size:16px;line-height:1.6;background:#f6f2e9;color:var(--parent-ink)}
body.public-plain-layout.parent-login-page-layout .content{padding:0}
.parent-login-page-layout button,.parent-login-page-layout input{font-family:inherit}
.parent-login-page-layout .parent-shell{width:min(1440px,100%)}
.parent-login-page-layout .parent-topbar{min-height:96px;margin:0 52px;border-color:#ced0c3}
.parent-login-page-layout .parent-wordmark-logo{width:170px;height:78px}
.parent-login-page-layout .parent-secure-label{font-size:17px;color:#173e35;font-weight:600;letter-spacing:0}
.parent-login-page-layout .parent-login-page-main{display:grid;grid-template-columns:58% 42%;align-items:stretch;min-height:0;padding:40px 0 0}
.parent-garden-story{min-width:0;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.parent-garden-copy{padding:0 30px 0 58px;position:relative;z-index:1}
.parent-garden-copy h2{margin:0;color:#173e35;font-family:"Eundong Title","Noto Serif CJK KR","Noto Serif KR","Batang","AppleMyungjo",serif;font-size:clamp(40px,4.4vw,66px);line-height:1.4;font-weight:600;letter-spacing:-.055em;word-break:keep-all}
.parent-garden-copy p{font-size:18px;line-height:1.8;margin:20px 0 0;color:#345249;word-break:keep-all}
.parent-garden-art{display:block;width:100%;height:auto;mask-image:linear-gradient(to bottom,transparent,#000 9%);margin-top:10px}
.parent-login-page-layout .parent-login-page{box-sizing:border-box;width:100%;padding:65px 54px 45px;border-left:1px solid #ced0c3;align-self:stretch}
.parent-login-page-layout .parent-login-page-heading{margin:0 0 28px;text-align:left}
.parent-login-page-layout .parent-login-page-heading h1{font-family:"Eundong Title","Noto Serif CJK KR","Noto Serif KR","Batang","AppleMyungjo",serif;margin:0 0 10px;font-size:34px;font-weight:600;letter-spacing:-.035em;line-height:1.4}
.parent-login-page-layout .parent-login-page-heading>span{display:block;color:#465e53;font-size:15px;line-height:1.7;word-break:keep-all}
.parent-login-page-layout .parent-login-card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.parent-login-page-layout .parent-login-card::before,.parent-login-page-layout .parent-login-card::after,.parent-login-page-layout .parent-login-head{display:none}
.parent-login-page-layout .portal-login-tabs{margin:0 0 30px;gap:0;padding:0;border:1px solid #b7beb1;border-radius:4px;background:transparent;overflow:hidden}
.parent-login-page-layout .portal-login-tabs button{min-height:52px;border:0;border-radius:0;padding:12px;color:#334c40;text-align:center;background:transparent}
.parent-login-page-layout .portal-login-tabs button span{font-size:16px;font-weight:600}
.parent-login-page-layout .portal-login-tabs button small{display:none}
.parent-login-page-layout .portal-login-tabs button.is-selected{background:#184c40;color:#fff;box-shadow:none}
.parent-login-page-layout .parent-login-form{margin:0}
.parent-login-page-layout .parent-login-form label{font-size:15px;font-weight:600;color:#273f35;margin:22px 0 8px}
.parent-login-page-layout .parent-login-form input:not([type="hidden"]){min-height:54px;font-size:17px;line-height:1.4;border:1px solid #aab7aa;background:#fffdf8;border-radius:4px;padding:13px 14px}
.parent-login-page-layout .parent-login-form>button{min-height:54px;font-size:17px;font-weight:600;margin-top:30px;border-radius:4px}
.parent-login-page-layout .parent-login-links{display:flex;flex-direction:column;align-items:stretch;gap:3px;margin-top:16px}
.parent-login-page-layout .parent-login-links a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:14px;font-weight:600;text-align:center;color:#184c40}
.parent-login-page-layout .parent-login-links [hidden]{display:none}
.parent-login-page-layout .parent-login-links>span{font-size:13px;font-weight:400;text-align:center;color:#465e53;line-height:1.7}
.parent-login-page-layout .parent-login-note{margin:24px 0 0;padding-top:18px;border-color:#d7d8cc;font-size:12px;line-height:1.8;color:#465e53;word-break:keep-all}
.parent-login-page-layout .parent-footer{margin:0;padding:20px 52px;background:#173e35;color:#f6f2e9;border:0;gap:12px;font-size:12px}
.parent-login-page-layout .parent-footer a{color:#f6f2e9;min-height:44px;display:inline-flex;align-items:center}
.parent-login-page-layout a:focus-visible,.parent-login-page-layout button:focus-visible{outline:3px solid #c57942;outline-offset:3px}
/* [PORTAL-GARDEN-20260913-002] 태블릿은 열 간격 축소, 휴대폰은 소개를 짧게 하고 폼부터 읽기 쉽게 배치 */
@media(max-width:1000px) and (min-width:701px){.parent-login-page-layout .parent-login-page-main{grid-template-columns:52% 48%}.parent-login-page-layout .parent-login-page{padding:32px 28px}.parent-garden-copy{padding-left:30px}.parent-garden-copy h2{font-size:42px}.parent-garden-copy p{font-size:16px}}
@media(max-width:700px){
 .parent-login-page-layout .parent-topbar{min-height:72px;margin:0 20px;padding:0;flex-direction:row}
 .parent-login-page-layout .parent-wordmark-logo{width:138px;height:64px}
 .parent-login-page-layout .parent-secure-label{display:block;font-size:14px}
 .parent-login-page-layout .parent-login-page-main{display:block;padding:0}
 .parent-garden-story{display:grid;grid-template-columns:minmax(0,1fr) 42%;align-items:center;gap:8px;padding:22px 20px 16px;border-bottom:1px solid #d7d8cc}
 .parent-garden-copy{padding:0}.parent-garden-copy h2{font-size:28px;line-height:1.5;letter-spacing:-.055em}.parent-garden-copy p{display:none}
 .parent-garden-art{margin:0;width:100%;height:auto}
 .parent-login-page-layout .parent-login-page{padding:26px 24px 30px;border:0;max-width:480px;margin:0 auto}
 .parent-login-page-layout .parent-login-page-heading{margin-bottom:20px}
 .parent-login-page-layout .parent-login-page-heading h1{font-size:27px;margin-bottom:6px}
 .parent-login-page-layout .parent-login-page-heading>span{font-size:14px}
 .parent-login-page-layout .portal-login-tabs{margin-bottom:20px}
 .parent-login-page-layout .parent-login-form label{margin-top:18px}
 .parent-login-page-layout .parent-login-form>button{margin-top:24px}
 .parent-login-page-layout .parent-login-note{margin-top:18px;font-size:12px}
 .parent-login-page-layout .parent-footer{padding:16px 20px;flex-direction:column;align-items:center;text-align:center;font-size:11px;gap:0}
}
@media(max-width:360px){.parent-garden-copy h2{font-size:24px}.parent-login-page-layout .parent-login-page{padding-left:20px;padding-right:20px}}

/* [PORTAL-GARDEN-FONT-20260913-001] 제목에 필요한 한글만 제공하는 로컬 Noto Serif KR 서브셋 */
@font-face{font-family:"Eundong Title";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/eundong-title.ttf?v=20260913-compact") format("truetype")}
/* Bundled Noto Serif KR font license:
Copyright 2012 Google Inc. All Rights Reserved.

This Font Software is licensed under the SIL Open Font License,
Version 1.1.

This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL

-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font
creation efforts of academic and linguistic communities, and to
provide a free and open framework in which fonts may be shared and
improved in partnership with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to
any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software
components as distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to,
deleting, or substituting -- in part or in whole -- any of the
components of the Original Version, by changing formats or by porting
the Font Software to a new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed,
modify, redistribute, and sell modified and unmodified copies of the
Font Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components, in
Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the
corresponding Copyright Holder. This restriction only applies to the
primary font name as presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created using
the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

*/

/* [PORTAL-PHILOSOPHY-20260913-001] 긴 학교명과 교육철학 원문을 모바일에서도 생략 없이 표시 */
.parent-garden-copy h2{font-size:clamp(38px,4vw,60px)}
.parent-garden-copy p{max-width:590px;font-size:17px;line-height:1.9}
@media(max-width:700px){
 .parent-garden-copy{display:contents}
 .parent-garden-copy h2{grid-column:1;grid-row:1;font-size:25px;line-height:1.5}
 .parent-garden-copy p{display:block;grid-column:1/-1;grid-row:2;font-size:14px;line-height:1.85;margin:12px 0 0}
 .parent-garden-art{grid-column:2;grid-row:1}
}
@media(max-width:360px){.parent-garden-copy h2{font-size:22px}}

/* [PORTAL-THEME-20260913-001] 로그인의 크림색·숲색과 담백한 테두리를 로그인 후 화면에 공유 */
body.parent-dashboard-layout{--parent-ink:#173e35;--parent-green:#184c40;--parent-green-dark:#10372e;background:#f6f2e9;color:#173e35;font-family:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif;font-size:15px;line-height:1.6}
body.public-plain-layout.parent-dashboard-layout .content{padding:0}
.parent-dashboard-layout .parent-dashboard-shell{width:min(1180px,calc(100% - 64px))}
.parent-dashboard-layout .parent-dashboard-topbar{min-height:90px;border-color:#d0d2c5}
.parent-dashboard-layout .parent-wordmark-logo{width:170px;height:76px}
.parent-dashboard-layout .parent-dashboard-account{font-size:14px;color:#465e53}
.parent-dashboard-layout .parent-dashboard-account button{min-height:44px;font-size:13px;border-radius:4px;background:transparent;border-color:#b7beb1;color:#173e35}
.parent-dashboard-layout .parent-dashboard-main{padding:28px 0 48px}
.parent-dashboard-layout .parent-dashboard-heading{margin-bottom:18px;gap:12px}
.parent-dashboard-layout .parent-dashboard-heading p{display:none}
.parent-dashboard-layout .parent-dashboard-heading h2,.parent-dashboard-layout .parent-growth-hero h1{font-family:"Eundong Title","Batang","AppleMyungjo",serif;font-weight:600;font-size:28px}
.parent-dashboard-layout .parent-dashboard-heading>span{font-size:13px;color:#526459}
.parent-dashboard-layout :is(.parent-dashboard-child-card,.parent-course-child-card,.parent-dashboard-menu,.parent-growth-course-card,.parent-growth-radar-card,.parent-growth-data-card,.parent-growth-students a){border-radius:6px;border-color:#d4d6c9;background:#fffdf8;box-shadow:none}
.parent-dashboard-layout .parent-dashboard-menu{min-height:105px;padding:18px}
.parent-dashboard-layout .parent-dashboard-menu p{font-size:13px;color:#526459}
.parent-dashboard-layout .parent-growth-hero{border-radius:6px;padding:24px 28px;background:#173e35}
.parent-dashboard-layout .parent-growth-term-filter{gap:0;border-bottom:1px solid #cdd0c1;margin-bottom:16px}
.parent-dashboard-layout .parent-growth-term-filter a{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:#526459;min-width:70px;min-height:44px;box-sizing:border-box;padding:9px 14px;font-size:14px}
.parent-dashboard-layout .parent-growth-term-filter a.is-selected{border-bottom-color:#184c40;color:#184c40;background:transparent}
.parent-dashboard-layout .parent-dashboard-footer{border-color:#d0d2c5;color:#526459}
.parent-dashboard-layout :is(a,button,summary):focus-visible{outline:3px solid #b7703b;outline-offset:3px}
/* [HOMEWORK-COMPACT-20260913-002] 큰 카드와 진행 막대를 없애고 과목별 구분선 목록으로 압축 */
.student-dashboard-shell .student-profile-card{padding:12px 16px;max-width:none;background:transparent;border-width:0 0 1px;border-radius:0}
.student-dashboard-shell .student-profile-card .parent-child-avatar{width:48px;height:56px;border-radius:4px}
.student-dashboard-shell .student-profile-card h3{font-size:18px;margin:0}
.student-dashboard-shell .student-profile-card small,.student-dashboard-shell .student-profile-card p{font-size:13px;color:#526459}
.student-dashboard-shell .parent-dashboard-main>.parent-dashboard-section:first-child>.parent-dashboard-heading{display:none}
.student-dashboard-shell .student-homework-section{margin-top:28px}
.student-dashboard-shell .student-homework-overview{gap:8px 22px;margin:0 0 22px;color:#526459;font-size:13px}
.student-dashboard-shell .student-homework-overview strong{font-size:17px;color:#173e35}
.student-dashboard-shell .student-homework-subject{margin:20px 0}
.student-dashboard-shell .student-homework-subject>header{margin:0;padding:8px 0;border-bottom:2px solid #526b57}
.student-dashboard-shell .student-homework-subject>header h3{font-size:17px}
.student-dashboard-shell .student-homework-list{border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.student-dashboard-shell .student-homework-section .student-homework-list article{grid-template-columns:105px minmax(0,1fr) 88px;gap:16px;padding:16px 8px;border-bottom:1px solid #d8dacd;align-items:start;background:transparent}
.student-dashboard-shell .student-homework-status{grid-column:auto;padding-top:2px}
.student-dashboard-shell .student-homework-status span{font-size:12px;font-weight:600;padding:3px 0;background:transparent;color:#526459;border-radius:0}
.student-dashboard-shell .student-homework-status span.is-late{color:#a0432c;background:transparent}
.student-dashboard-shell .student-homework-status span.is-done{color:#184c40;background:transparent}
.student-dashboard-shell .student-homework-content{grid-column:auto}
.student-dashboard-shell .student-homework-content h4{font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.student-homework-meta{display:flex;flex-wrap:wrap;gap:3px 16px;margin-top:4px;font-size:13px;color:#526459;font-variant-numeric:tabular-nums}
.student-homework-meta strong{font-weight:600;color:#184c40}
.is-overdue .student-homework-deadline{color:#a0432c}
.student-homework-description{margin-top:5px}
.student-homework-description summary{width:fit-content;cursor:pointer;font-size:13px;color:#184c40;min-height:30px;display:list-item;align-content:center}
.student-dashboard-shell .student-homework-content .student-homework-description p{white-space:pre-wrap;font-size:14px;line-height:1.75;margin:4px 0 0;color:#334b40}
.student-dashboard-shell .student-homework-section .student-homework-link{grid-column:3;grid-row:auto;min-width:0;min-height:44px;border-radius:4px;border:1px solid #acb9a8;background:transparent;color:#184c40;font-size:13px;font-weight:600}
.student-dashboard-shell .student-homework-link:hover{background:#e9eddf}
.student-dashboard-shell .student-homework-archive{padding:0;border:0;border-top:1px solid #cdd0c1;border-radius:0;background:transparent;margin-top:14px}
.student-dashboard-shell .student-homework-archive>summary{padding:14px 0;font-size:14px}
.student-dashboard-shell .student-homework-archive>summary>span{color:#526459}
.student-dashboard-shell .student-homework-empty{border:0;border-radius:4px;background:#eceee1;padding:24px 16px}
/* [PORTAL-COMPACT-MOBILE-20260913-003] 모바일에서 숙제는 상태·제목·메타 정보와 작은 동작으로 구성 */
@media(max-width:620px){
 .parent-dashboard-layout .parent-dashboard-shell{width:calc(100% - 32px)}
 .parent-dashboard-layout .parent-dashboard-topbar{min-height:72px}
 .parent-dashboard-layout .parent-wordmark-logo{width:138px;height:64px}
 .parent-dashboard-layout .parent-dashboard-main{padding-top:12px}
 .parent-dashboard-layout .parent-dashboard-heading{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:4px 12px}
 .parent-dashboard-layout .parent-dashboard-heading h2,.parent-dashboard-layout .parent-growth-hero h1{font-size:24px}
 .parent-dashboard-layout .parent-dashboard-heading>span{font-size:12px}
 .parent-dashboard-layout .parent-growth-hero{padding:20px}
 .parent-dashboard-layout .parent-dashboard-menu{min-height:88px;padding:16px}
 .student-dashboard-shell .student-profile-card{padding:8px 0 14px;gap:12px}
 .student-dashboard-shell .student-profile-card .parent-child-approved{display:none}
 .student-dashboard-shell .student-homework-overview{gap:6px 14px;font-size:12px;margin-bottom:14px}
 .student-dashboard-shell .student-homework-section .student-homework-list article{grid-template-columns:minmax(0,1fr) 78px;gap:4px 10px;padding:12px 0}
 .student-dashboard-shell .student-homework-status{grid-column:1;grid-row:1;padding:0}
 .student-dashboard-shell .student-homework-status span{padding:0;font-size:11px}
 .student-dashboard-shell .student-homework-content{grid-column:1;grid-row:2;}
 .student-dashboard-shell .student-homework-section .student-homework-link{grid-column:2;grid-row:2;align-self:start}
 .student-homework-meta{gap:2px 10px;font-size:12px}
 .student-homework-description summary{min-height:36px}
}

/* [GROWTH-ACTIVITY-ARCHIVE-20260913-003] 학습 활동 완료 목록을 기본 접힌 구분선 영역으로 표시 */
.parent-growth-activity-archive{border-top:1px solid #d4d6c9}
.parent-growth-activity-archive>summary{padding:16px 18px;min-height:44px;box-sizing:border-box;cursor:pointer;font-size:14px;color:#184c40}
.parent-growth-activity-archive>summary strong{margin-left:8px}
.parent-growth-activity-archive[open]>summary{border-bottom:1px solid #d4d6c9}
/* [ACADEMY-DASHBOARD-20260913-001] Ronas 참고: 밝은 바탕, 연보라·살구·하늘색과 세 열 학습 대시보드 */
body.academy-layout{background:#eeedf6;color:#343642;font-family:"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;font-size:14px;line-height:1.6}
.academy-layout *{box-sizing:border-box}.academy-layout [hidden]{display:none!important}
.academy-layout button,.academy-layout input,.academy-layout select{font:inherit}
.academy-layout a{color:inherit;text-decoration:none}
.academy-shell{display:grid;grid-template-columns:200px minmax(0,1fr);max-width:1536px;min-height:calc(100vh - 40px);margin:20px auto;background:#fcfcfe;border-radius:24px;overflow:hidden}
.academy-sidebar{padding:26px 18px;background:#f7f7fc;border-right:1px solid #ebebf2}
.academy-brand{display:block;margin:0 10px 28px}.academy-brand img{display:block;width:138px;height:68px;object-fit:contain}.academy-brand strong{display:block;margin-top:8px;color:#257f78;font-size:16px}
.academy-nav{display:grid;gap:6px}.academy-nav a{padding:12px 14px;border-radius:10px;color:#666777;font-weight:600}.academy-nav a[aria-current]{background:#e9e2ff;color:#6245ac}.academy-nav a:hover{background:#eeebf7}
.academy-course-menu{margin-top:26px}.academy-course-menu>summary{font-size:13px;color:#686779;cursor:pointer;padding:10px 4px}.academy-course-menu>summary span{float:right}.academy-search input{width:100%;min-height:40px;border:1px solid #e2e1ec;background:#fff;border-radius:8px;padding:8px 10px;font-size:13px;margin:8px 0}
.academy-course-menu nav{display:grid;gap:2px}.academy-course-menu nav a{display:flex;align-items:center;gap:8px;min-height:38px;font-size:13px;padding:4px;border-radius:6px;overflow-wrap:anywhere}.academy-course-menu nav a:hover{background:#eeebf7}
.academy-subject-mark{width:36px;height:36px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:14px;font-weight:700}.academy-course-menu .academy-subject-mark{width:26px;height:26px;border-radius:7px;font-size:12px}
.academy-layout .tone-0{background:#fff0df;color:#8c5323}.academy-layout .tone-1{background:#ede6ff;color:#6946a3}.academy-layout .tone-2{background:#e4f2ff;color:#306b9a}
.academy-school-note{margin:32px 10px 0;color:#337b75;font-size:17px;font-weight:600}.academy-school-note span{font-size:11px;color:#777588}
.academy-workspace{min-width:0;padding:30px}.academy-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.academy-eyebrow{font-size:10px;letter-spacing:.15em;color:#80768f;font-weight:700}.academy-topbar h1{font-size:27px;line-height:1.4;margin:2px 0 0;color:#333541;letter-spacing:-.04em}.academy-topbar form{margin:0}.academy-topbar button,.academy-period button,.academy-calendar header button{background:#fff;border:1px solid #e2dfec;border-radius:8px;padding:8px 12px;min-height:40px;color:#5d5870;cursor:pointer}
.academy-main{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:28px;align-items:start}.academy-center{min-width:0}.academy-welcome h2{font-size:20px;margin:0 0 3px;letter-spacing:-.04em}.academy-welcome p{margin:0;color:#767284;font-size:13px}
.academy-period{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0}.academy-period label{font-size:12px;color:#747082}.academy-period select{margin-left:5px;padding:7px;border:1px solid #e6e2ec;border-radius:8px;background:#fff;color:#454151;min-height:38px}
.academy-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:26px}.academy-stats a{border-radius:14px;padding:14px 16px}.academy-stats span{font-size:12px}.academy-stats strong{display:block;font-size:28px;line-height:1.3;margin-top:6px}.academy-stats small{font-size:12px;margin-left:5px;font-weight:500}
.academy-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.academy-section-head h2{font-size:18px;margin:0}.academy-section-head>span{font-size:11px;color:#797285}
.academy-task{display:flex;align-items:start;gap:12px;padding:14px 0;border-bottom:1px solid #eeeaf3;scroll-margin-top:20px}.academy-task-body{min-width:0;flex:1}.academy-task-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.academy-task h3{font-size:14px;margin:0;line-height:1.5;overflow-wrap:anywhere}.academy-task-meta{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px;color:#756f80;margin:4px 0 0}.academy-late{font-size:10px;color:#a23e36;background:#ffe9e3;padding:1px 5px;border-radius:4px}.academy-task-detail summary{font-size:12px;cursor:pointer;min-height:30px;width:fit-content;align-content:center;color:#7156ac}.academy-task-detail p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;color:#5e596a}.academy-action{display:inline-flex;align-items:center;min-height:40px;background:#8265c8;color:#fff!important;border-radius:8px;padding:6px 12px;font-size:13px}
.academy-archive{border-bottom:1px solid #eeeaf3}.academy-archive>summary{padding:14px 0;min-height:44px;font-size:13px;color:#716b80;cursor:pointer}.academy-archive>summary span{float:right}.academy-empty{padding:14px 0;font-size:13px;color:#777183;margin:0}.academy-week{margin-top:30px}.academy-weekdays{display:flex;gap:6px;margin:14px 0}.academy-weekdays button{flex:1;min-width:0;min-height:40px;background:#f1eef8;color:#726980;border:0;border-radius:8px;cursor:pointer}.academy-weekdays button[aria-pressed=true]{background:#8265c8;color:white}.academy-class{display:flex;align-items:center;gap:14px;border-bottom:1px solid #eeeaf3;padding:11px 0}.academy-class time{font-size:13px;color:#7251aa;min-width:42px}.academy-class time small{display:block;font-size:10px;color:#8c8397}.academy-class strong{font-size:13px;flex:1}.academy-class>span{font-size:11px}.academy-footnote{font-size:11px;color:#80768c;margin:12px 0}
.academy-right{border-left:1px solid #ece8f2;padding-left:24px;min-width:0}.academy-profile{display:flex;align-items:center;gap:12px;margin-bottom:26px}.academy-profile img{width:48px;height:58px;object-fit:cover;border-radius:14px}.academy-profile strong{font-size:16px}.academy-profile p{font-size:12px;color:#767083;margin:2px 0}.academy-profile small{font-size:11px;color:#8a8195}
.academy-calendar header{display:flex;align-items:center;justify-content:space-between}.academy-calendar h2{font-size:18px;margin:0}.academy-calendar header button{min-height:34px;font-size:11px}.academy-month-nav{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.academy-month-nav strong{font-size:13px}.academy-month-nav button{background:transparent;border:0;color:#7a638f;min-height:36px;font-size:11px;cursor:pointer}.academy-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.academy-calendar-grid>span{font-size:10px;color:#887d94;min-height:26px}.academy-calendar-grid button{position:relative;min-width:0;height:34px;padding:0;background:transparent;border:0;border-radius:10px;color:#534961;font-size:12px;cursor:pointer}.academy-calendar-grid button[aria-current]{color:#63469a;font-weight:800}.academy-calendar-grid button[aria-pressed=true]{background:#8265c8;color:#fff}.academy-calendar-grid button.has-deadline{box-shadow:inset 0 -3px #c39ae5}.academy-calendar h3{margin:20px 0 8px;font-size:13px}#academyDateTasks a{display:block;background:#f1ebfd;border-radius:10px;padding:10px 12px;margin:8px 0}#academyDateTasks small{display:block;font-size:11px;color:#7a609d}#academyDateTasks strong{font-size:13px;overflow-wrap:anywhere}.academy-record-shortcut{display:block;border-radius:14px;background:#e9f4ee;padding:18px;margin-top:24px}.academy-record-shortcut>span{font-size:9px;letter-spacing:.1em;color:#547c69}.academy-record-shortcut strong{display:block;font-size:15px;line-height:1.7;margin:8px 0 16px;color:#32654e}.academy-record-shortcut b{font-size:12px;color:#3a7760}
/* [ACADEMY-RECORDS-20260913-002] 전 학기 성적의 펼침 목록과 모바일에서도 읽히는 두 열 평가표 */
.academy-records{grid-column:1/-1;min-width:0}.academy-record-intro{margin:0 0 22px;color:#777183}.academy-record-filters{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:#f1edf9;border-radius:12px}.academy-record-filters label{display:grid;gap:5px;font-size:12px;color:#665d76;flex:1;min-width:130px}.academy-record-filters :is(input,select){width:100%;min-height:44px;background:#fff;border:1px solid #e1d9ed;border-radius:8px;padding:8px;color:#44394e}.academy-record{background:#fff;border:1px solid #e9e3ef;border-radius:12px;margin:10px 0;overflow:hidden}.academy-record summary{cursor:pointer;padding:16px;display:flex;align-items:center;gap:16px;list-style:disclosure-closed}.academy-record summary strong{flex:1;overflow-wrap:anywhere;font-size:15px}.academy-record summary>span{font-size:12px;color:#80728e}.academy-record-period{min-width:110px}.academy-record summary::after{content:'펼치기';font-size:11px;color:#7353a3}.academy-record[open] summary::after{content:'접기'}.academy-record-content{padding:0 16px 16px}.academy-record table{border-collapse:collapse;width:100%;font-size:13px}.academy-record th{text-align:left;font-size:11px;color:#7a6e85;background:#f6f2fb}.academy-record :is(th,td){padding:10px;border-bottom:1px solid #eee7f4;overflow-wrap:anywhere}.academy-record td small{font-size:11px;color:#8c8096}.academy-record td:first-child small{display:block}.academy-record-comment h3{font-size:13px}.academy-record-comment p{white-space:pre-wrap;font-size:13px;overflow-wrap:anywhere;color:#5c5367}#recordCount{font-size:12px;color:#756780}.academy-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.academy-layout :is(button,a,input,select,summary):focus-visible{outline:3px solid #ae8cd4;outline-offset:3px}
/* [ACADEMY-RESPONSIVE-20260913-003] 태블릿 두 열, 모바일 날짜 선택 후 할 일을 보는 작은 화면 배치 */
@media(min-width:1100px){.academy-shell{width:calc(100% - 40px)}}
@media(max-width:1100px){.academy-shell{margin:0;border-radius:0;grid-template-columns:170px minmax(0,1fr)}.academy-workspace{padding:22px}.academy-main{grid-template-columns:minmax(0,1fr) 235px;gap:20px}.academy-right{padding-left:16px}.academy-sidebar{padding:22px 12px}.academy-brand{margin-left:0}.academy-stats a{padding:12px}}
@media(max-width:950px){.academy-main{grid-template-columns:minmax(0,1fr)}.academy-right{border-left:0;padding-left:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.academy-profile{grid-column:1/-1;margin:0}.academy-record-shortcut{align-self:start}}
@media(max-width:760px){body.academy-layout{background:#fcfcfe}.academy-shell{display:block}.academy-sidebar{padding:12px 18px;border-right:0;border-bottom:1px solid #e9e5ef;background:#fcfcfe}.academy-brand{display:flex;align-items:center;gap:12px;margin:0 0 12px}.academy-brand img{width:110px;height:52px}.academy-brand strong{font-size:14px;margin:0}.academy-nav{display:flex;gap:6px}.academy-nav a{font-size:12px;flex:1;text-align:center;padding:10px 6px}.academy-course-menu{margin:8px 0 0}.academy-course-menu>summary{padding:8px 4px;min-height:36px}.academy-course-menu nav{grid-template-columns:1fr 1fr}.academy-school-note{display:none}.academy-workspace{padding:20px 18px}.academy-topbar{margin-bottom:20px}.academy-topbar h1{font-size:23px}.academy-topbar button{font-size:12px}.academy-main{display:flex;flex-direction:column;gap:20px}.academy-center,.academy-right,.academy-records{width:100%}.academy-right{display:flex;flex-direction:column;gap:0;order:-1}.academy-profile,.academy-record-shortcut{display:none}.academy-calendar{padding:14px;background:#f4f0fb;border-radius:14px}.academy-calendar h2{font-size:15px}.academy-calendar-grid button{height:36px}.academy-calendar h3{margin-top:12px}.academy-calendar .academy-empty{font-size:12px;padding:4px 0}.academy-calendar header button{background:transparent}.academy-welcome h2{font-size:18px}.academy-welcome p{font-size:12px}.academy-period{margin:12px 0}.academy-period label{font-size:11px}.academy-stats{gap:8px;margin-bottom:20px}.academy-stats a{padding:10px 12px;border-radius:12px}.academy-stats span{font-size:11px}.academy-stats strong{font-size:24px}.academy-task{gap:10px;padding:10px 0}.academy-task h3{font-size:14px}.academy-task-detail summary{min-height:34px}.academy-record summary{flex-wrap:wrap;gap:4px 8px;padding:14px}.academy-record-period{width:100%;min-width:0}.academy-record summary strong{font-size:14px}.academy-record summary>span{font-size:11px}.academy-record-filters{gap:8px;padding:12px}.academy-record-filters label{min-width:100px}.academy-record-filters label:last-child{flex-basis:100%}}
/* [ACADEMY-GROWTH-COMPACT-20260913-004] 학습 상세도 배너·과목 격자를 줄이고 활동을 첫 화면에 표시 */
.academy-date-picker{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#7a638f;margin:10px 0}.academy-date-picker input{min-width:0;width:145px;border:1px solid #e2d9ec;background:white;border-radius:6px;padding:5px;color:#51465e;font-size:12px;min-height:36px}
body.academy-growth-layout{background:#f5f4fa;color:#383243;font-family:"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif}.academy-growth-layout .parent-growth-hero{background:transparent;color:#3f344f;padding:0;border-radius:0}.academy-growth-layout .parent-growth-hero p,.academy-growth-layout .parent-growth-hero>span{display:none}.academy-growth-layout .parent-growth-hero h1,.academy-growth-layout .parent-dashboard-heading h2{font-family:inherit;font-size:23px}.academy-growth-layout .parent-growth-students{margin-top:12px}.academy-growth-layout .parent-growth-students a{padding:8px 12px;min-width:0;background:#eee6fc;border:0}.academy-growth-layout .parent-growth-students a strong,.academy-growth-layout .parent-growth-students a span{display:inline;margin-right:8px}.academy-growth-layout .parent-dashboard-section{margin-top:18px}.academy-growth-layout .parent-growth-course-heading{display:none}.academy-growth-layout .parent-growth-term-filter{margin-bottom:10px}.academy-growth-picker{display:flex;gap:10px;align-items:center;font-size:13px}.academy-growth-picker select{flex:1;max-width:320px;min-width:0;padding:9px;border:1px solid #dcd3e9;border-radius:8px;background:white;font:inherit}.academy-growth-picker button{padding:9px 18px;min-height:40px;border:0;border-radius:8px;background:#8265c8;color:white;font:inherit;cursor:pointer}.academy-growth-layout .parent-growth-detail{margin-top:24px}.academy-growth-layout .parent-growth-detail-head h2{font-size:21px}.academy-growth-graphs{margin:12px 0}.academy-growth-graphs>summary{cursor:pointer;color:#7657a5;font-size:13px;min-height:36px;align-content:center}.academy-growth-layout .parent-growth-data-card{border-color:#e6e0ef;border-radius:14px;background:#fff}.academy-growth-layout .parent-growth-data-card>header{padding:14px 16px}.academy-growth-layout .parent-growth-activity-list article{padding:12px 16px}.academy-growth-layout .parent-growth-item-head strong{font-size:18px}.academy-growth-layout .parent-growth-activity-list article>p{font-size:12px;margin:7px 0}.academy-growth-layout .parent-growth-activity-list progress{height:4px}.academy-growth-layout .parent-growth-item-head h4{font-size:14px}.academy-growth-layout .parent-growth-submission{margin-top:10px;padding:10px}.academy-growth-layout .parent-growth-submission-status{margin-bottom:6px}
/* [ACADEMY-MOBILE-DENSITY-20260913-005] 휴대폰의 일정은 주간 날짜와 마감만 남겨 첫 할 일까지의 거리 축소 */
@media(max-width:760px){.academy-calendar .academy-month-nav{display:none}.academy-calendar header{margin-bottom:8px}.academy-calendar #academySelectedDate{display:none}.academy-calendar .academy-date-picker{margin:6px 0}.academy-calendar #academyDateTasks a{margin:6px 0 0;padding:8px 10px}.academy-welcome p{display:none}.academy-brand img{height:42px}.academy-topbar{margin-bottom:14px}.academy-workspace{padding-top:14px}}
/* [ACADEMY-GROWTH-DENSITY-20260913-006] 빈 평가 상자의 고정 높이와 활동 헤더의 중복 영문 제거 */
.academy-growth-layout .parent-growth-data-card>header p{display:none}.academy-growth-layout .parent-growth-data-card>header h3{font-family:inherit;font-size:18px}.academy-growth-layout .parent-growth-card-empty{min-height:0;padding:24px 16px}.academy-growth-layout .parent-growth-submission{padding:8px 0 0;background:transparent;border:0;border-radius:0}.academy-growth-layout .parent-growth-submission summary{font-size:12px;min-height:36px}.academy-growth-layout .parent-growth-submission-status strong{font-size:11px}
/* [ACADEMY-READABILITY-20260913-001] 작은 본문·보조 정보의 크기와 대비를 높이고 기존 색감 유지 */
body.academy-layout{font-size:16px;color:#34313f}
.academy-nav a,.academy-course-menu nav a{font-size:15px}
.academy-course-menu>summary,.academy-search input{font-size:14px}
.academy-task h3{font-size:17px;line-height:1.55}
.academy-task-meta{font-size:14px;color:#625b6d;gap:3px 12px;line-height:1.65}
.academy-task-detail summary,.academy-task-detail p,.academy-archive>summary{font-size:15px;color:#625071}
.academy-task-detail summary{min-height:36px}.academy-late{font-size:12px}
.academy-period label,.academy-section-head>span,.academy-profile p,.academy-profile small{font-size:14px;color:#625b6d}
.academy-period select,.academy-record-filters :is(input,select),.academy-search input{font-size:16px}
.academy-stats span{font-size:14px}.academy-stats small{font-size:14px}
.academy-welcome p,.academy-empty{font-size:15px;color:#625b6d}
.academy-section-head h2{font-size:20px}
.academy-calendar-grid>span,.academy-calendar-grid button,.academy-calendar header button,.academy-month-nav button{font-size:14px;color:#625371}
.academy-calendar-grid button[aria-pressed=true]{color:#fff}
.academy-month-nav strong,.academy-calendar h3,.academy-date-picker{font-size:14px;color:#54475f}
.academy-date-picker input{font-size:16px;width:165px}
#academyDateTasks small{font-size:13px;color:#694e84}#academyDateTasks strong{font-size:15px}
.academy-calendar .academy-empty{font-size:14px}
.academy-record summary strong{font-size:17px}.academy-record summary>span,.academy-record-filters label,#recordCount{font-size:14px;color:#665772}
.academy-record table,.academy-record-comment p{font-size:16px}.academy-record :is(th,td small),.academy-record-comment h3{font-size:14px}
.academy-footnote{font-size:13px;color:#6c6276}
/* [ACADEMY-WEEK-OPEN-20260913-003] PC는 요일별 열, 모바일은 요일별 행으로 모든 수업을 항상 표시 */
.academy-week{margin:0 0 28px;scroll-margin-top:20px}
.academy-week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px}
.academy-week-day{min-width:0;background:#f5f1fb;border-radius:10px;overflow:hidden}
.academy-week-day h3{margin:0;padding:10px;font-size:16px;color:#624780;background:#eae1f7;text-align:center}
.academy-week-day h3 span{font-size:13px;font-weight:400;margin-left:2px}
.academy-week-day .academy-class{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:12px 10px;border-bottom:1px solid #e5dcef}
.academy-week-day .academy-class:last-child{border-bottom:0}
.academy-week-day .academy-class time{font-size:13px;color:#655472;white-space:nowrap;font-variant-numeric:tabular-nums}
.academy-week-day .academy-class time small{display:inline;font-size:12px;color:#655472}
.academy-week-day .academy-class strong{font-size:15px;line-height:1.55;overflow-wrap:anywhere;font-weight:600}
.academy-week-day .academy-class>span{font-size:12px;color:#72508e}
.academy-day-empty{font-size:13px;margin:0;padding:14px 8px;color:#766881;text-align:center}
.academy-growth-layout .parent-growth-item-head h4{font-size:17px}
.academy-growth-layout .parent-growth-activity-list article>p,.academy-growth-layout .parent-growth-activity-list footer,.academy-growth-layout .parent-growth-submission summary,.academy-growth-layout .parent-growth-score-table{font-size:15px}
.academy-growth-layout .parent-growth-submission-status strong,.academy-growth-layout .parent-growth-activity-list footer span,.academy-growth-layout .parent-growth-item-head span{font-size:14px}
@media(max-width:1100px) and (min-width:761px){.academy-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .academy-nav a{font-size:14px}.academy-course-menu nav a{font-size:14px}
 .academy-task h3{font-size:16px}.academy-task-meta{font-size:14px}.academy-task-detail summary{font-size:14px}
 .academy-stats a{padding:10px}.academy-stats span{font-size:13px}
 .academy-period label{font-size:13px}.academy-topbar button{font-size:14px}
 .academy-calendar h2{font-size:17px}.academy-calendar .academy-empty{font-size:14px}
 .academy-record summary strong{font-size:16px}.academy-record summary>span{font-size:13px}
 .academy-week-grid{grid-template-columns:1fr;gap:8px}
 .academy-week-day{display:grid;grid-template-columns:46px minmax(0,1fr)}
 .academy-week-day h3{padding:12px 6px;text-align:center;font-size:16px}.academy-week-day h3 span{display:none}
 .academy-week-day .academy-class{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 10px;padding:10px 12px}
 .academy-week-day .academy-class time{width:100%;font-size:14px}.academy-week-day .academy-class time small{font-size:13px}
 .academy-week-day .academy-class strong{font-size:16px}.academy-day-empty{text-align:left;padding:12px;font-size:14px}
}
/* [ACADEMY-FOCUS-NAV-20260914-001] 대시보드는 현재 할 일부터, 전체 숙제와 교과는 별도 메뉴 */
.academy-homework-history{display:block;width:fit-content;margin:12px 0 20px;font-size:14px;color:#71548d!important;padding:8px 0}
.academy-center>.academy-homework{margin:0 0 14px}
.academy-center>.academy-period{margin:20px 0 14px}
.academy-courses-page{grid-column:1/-1;min-width:0}
.academy-courses-page .academy-course-menu{margin-top:16px}
.academy-courses-page h2{font-size:20px;margin:0 0 12px}.academy-courses-page h2 span{font-size:14px;color:#6f617d;margin-left:8px}
.academy-courses-page .academy-search input{max-width:400px;min-height:44px}
.academy-courses-page .academy-course-menu nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px;margin-top:14px}
.academy-courses-page .academy-course-menu nav a{min-height:54px;padding:10px;border-bottom:1px solid #e8e1ef;font-size:16px}
.academy-period-label{font-size:14px;color:#44334e}
/* [ACADEMY-SUBJECT-COLORS-20260914-002] 과목마다 고정된 파스텔 배경과 충분한 글자 대비 */
.academy-layout .subject-tone-0{background:#fff0dc;color:#684626}.academy-layout .subject-tone-1{background:#eae1fa;color:#50356f}.academy-layout .subject-tone-2{background:#e0effb;color:#294f6c}.academy-layout .subject-tone-3{background:#e0f2e7;color:#2e5e42}.academy-layout .subject-tone-4{background:#fbe4e9;color:#79394b}.academy-layout .subject-tone-5{background:#f5edce;color:#665620}.academy-layout .subject-tone-6{background:#e2eef0;color:#325f65}.academy-layout .subject-tone-7{background:#f0e7df;color:#624c3b}
.academy-week-day .academy-class time,.academy-week-day .academy-class time small{color:inherit;opacity:.88}
@media(max-width:760px){.academy-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.academy-nav a{font-size:14px;padding:8px 4px;min-height:40px}.academy-right{order:1}.academy-courses-page .academy-course-menu nav{grid-template-columns:1fr}.academy-week-day .academy-period-label{width:100%;font-size:14px}.academy-week-day .academy-class time{width:auto}.academy-week-day .academy-class strong{flex-basis:100%}}
/* [ACADEMY-HOMEWORK-PAGE-20260914-003] 숙제 전용 화면에서는 비어 있는 달력 열 없이 목록 너비 사용 */
.academy-main>.academy-center:only-child{grid-column:1/-1}
/* [ACADEMY-PERIOD-GRID-20260914-002] 교시 열을 왼쪽에 고정하고 같은 교시의 요일 셀 높이 공유 */
.academy-timetable-scroll{max-width:100%;overflow-x:auto;border:1px solid #e5ddef;border-radius:12px;margin-top:14px;isolation:isolate}
.academy-timetable{width:100%;min-width:680px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.academy-timetable th,.academy-timetable td{border-right:1px solid #e5ddef;border-bottom:1px solid #e5ddef;padding:6px;vertical-align:top}
.academy-timetable tr>:last-child{border-right:0}.academy-timetable tbody tr:last-child>*{border-bottom:0}
.academy-timetable thead th{padding:12px 6px;background:#eae1f7;font-size:15px;color:#604775;text-align:center}
.academy-timetable tr>th:first-child{position:sticky;left:0;width:72px;z-index:1;background:#f1ecf8;text-align:center}
.academy-timetable thead tr>th:first-child{background:#eae1f7}
.academy-timetable tbody th{padding:14px 5px}.academy-timetable tbody th strong{font-size:15px;white-space:nowrap;color:#4f3c62}
.academy-timetable tbody th time{display:block;margin-top:4px;font-size:12px;font-weight:400;color:#6d5c7d}
.academy-timetable .academy-class{display:flex;flex-direction:column;align-items:stretch;gap:4px;border:0;border-radius:7px;padding:10px 8px;margin:0 0 6px;min-height:70px}
.academy-timetable .academy-class:last-child{margin-bottom:0}.academy-timetable .academy-class strong{font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.academy-timetable .academy-class time{font-size:11px;color:inherit;white-space:nowrap}.academy-timetable .academy-class>span{font-size:12px;color:inherit}
.academy-slot-empty{display:block;text-align:center;padding:16px 0;color:#978aa0}
/* [HOMEWORK-DDAY-20260914-003] 날짜와 D-day를 함께 표시하고 텍스트·색상으로 긴급도 구분 */
.academy-deadline{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px}
.academy-dday{display:inline-block;padding:1px 7px;border-radius:6px;background:#eee8f5;color:#635071;font-size:13px;font-weight:600;line-height:1.6;white-space:nowrap}
.academy-dday.is-soon{background:#fff0d9;color:#855015}
.academy-dday.is-urgent{background:#ffe6e3;color:#a1332d}
/* [ACADEMY-AB-COLUMNS-20260914-002] A주 왼쪽·B주 오른쪽, 좁은 화면에서도 두 열과 교과색 유지 */
.academy-slot-group+.academy-slot-group{margin-top:6px}
.academy-week-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.academy-week-column{min-width:0}
.academy-week-split .academy-week-column{display:flex;flex-direction:column;gap:6px}
.academy-week-split .academy-class{flex:1;margin:0;padding:9px 6px}
.academy-timetable .academy-week-split time{white-space:normal}
.academy-week-split time>span{display:inline-block}

/* [HW-BUNDLE-STUDENT-STYLE-20260914-001] 묶음 이름과 완료 개수만 작게 표시 */
.academy-homework-bundle{margin:16px 0;border:1px solid #e3dff1;border-radius:12px;overflow:hidden}.academy-homework-bundle>header{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 16px;background:#f0ecfa;font-size:15px}.academy-homework-bundle>header span{font-size:13px;color:#655978}.academy-homework-bundle .academy-task{padding:14px 16px}.academy-bundle-label{margin:0 0 4px;font-size:13px;color:#75658f}

/* [UNIFIED-LOGIN-20260914-007] 공통 로그인 3개 탭과 교직원 자동 로그인 옵션 */
.parent-login-page-layout .unified-login-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
.unified-login-tabs a { display:flex; align-items:center; justify-content:center; min-height:52px; padding:12px 6px; text-decoration:none; font-size:16px; font-weight:600; color:#334c40; }
.unified-login-tabs a.is-selected { background:#184c40; color:white; }
.unified-login-tabs a:focus-visible { outline:3px solid #e7ad38; outline-offset:-3px; }
.unified-login-options { display:flex; justify-content:space-between; gap:14px; margin:12px 0 18px; }
.parent-login-form .unified-login-options label { display:flex; align-items:center; gap:7px; margin:0; font-size:13px; font-weight:500; }
.parent-login-form .unified-login-options input { width:16px; height:16px; padding:0; margin:0; accent-color:#184c40; }
.parent-login-form [hidden] { display:none!important; }

.parent-login-page-layout .parent-login-form .unified-login-options input{min-height:16px;height:16px;width:16px;padding:0;margin:0;}

/* [LOGIN-RESPONSIVE-20260920-001] 낮은 데스크톱 창에서는 그림·여백을 줄이고 입력 영역의 가독성을 유지한다. */
@media (min-width:701px) and (max-height:900px){
 .parent-login-page-layout .parent-topbar{min-height:64px}
 .parent-login-page-layout .parent-wordmark-logo{height:60px}
 .parent-login-page-layout .parent-login-page-main{padding-top:clamp(12px,2vh,24px)}
 .parent-login-page-layout .parent-login-page{padding:clamp(12px,2vh,24px) clamp(24px,3vw,54px) 12px}
 .parent-login-page-layout .parent-garden-copy h2{font-size:clamp(36px,5.5vh,50px)}
 .parent-login-page-layout .parent-garden-copy p{font-size:16px;margin-top:12px}
 .parent-login-page-layout .parent-garden-art{max-height:30vh;object-fit:contain;object-position:bottom}
 .parent-login-page-layout .parent-login-page-heading{margin-bottom:8px}
 .parent-login-page-layout .parent-login-page-heading h1{font-size:28px;margin-bottom:6px}
 .parent-login-page-layout .portal-login-tabs{margin-bottom:12px}
 .parent-login-page-layout .unified-login-tabs a{box-sizing:border-box;min-height:44px;padding:8px 6px}
 .parent-login-page-layout .parent-login-form>label{margin:8px 0 6px;line-height:1.4}
 .parent-login-page-layout .parent-login-form>input:not([type="hidden"]){display:block;min-height:44px;padding:9px 14px}
 .parent-login-page-layout .unified-login-options{margin:6px 0}
 .parent-login-page-layout .parent-login-form>button{min-height:44px;margin-top:12px;padding:11px}
 .parent-login-page-layout .parent-login-links{flex-direction:row;justify-content:center;gap:0 16px;margin-top:8px}
 .parent-login-page-layout .parent-login-note{margin-top:8px;padding-top:8px}
 .parent-login-page-layout .parent-footer{padding-top:0;padding-bottom:0}
}

/* [FAMILY-SHELL-20260915-001] 학생 대시보드 팔레트·왼쪽 메뉴를 학부모 모든 서비스에 공유 */
html body.public-plain-layout.family-portal-layout .app{display:grid;grid-template-columns:220px minmax(0,1fr)!important;grid-template-areas:"family-menu content"!important;width:calc(100% - 40px);max-width:1536px;margin:20px auto;min-height:calc(100vh - 40px);border-radius:24px;overflow:clip;background:#fcfcfe;padding:0}
body.family-portal-layout{--parent-ink:#343642;--parent-green:#6245ac;--parent-green-dark:#51368f;font-size:16px}
.family-portal-layout .family-sidebar{grid-area:family-menu;position:sticky;top:0;align-self:start;min-height:calc(100vh - 40px);padding:26px 16px}
.family-portal-layout .content{min-width:0!important;margin:0!important;padding:30px!important;grid-area:content}
.family-menu>summary{display:none}.family-menu .academy-nav{display:grid;grid-template-columns:1fr}.family-menu .academy-nav a{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:15px;min-height:46px;line-height:1.5}.family-menu .academy-nav small{font-size:11px;white-space:nowrap;font-weight:400}
.family-account{font-size:15px;color:#716b80;margin:0 0 6px}.family-intro{color:#716b80;margin:0 0 26px}.family-main{min-width:0}.family-main .parent-dashboard-section{margin:0 0 28px}.family-main .parent-dashboard-heading h2,.family-next h2{font-family:inherit;font-size:20px;color:#343642;letter-spacing:-.03em}.family-main .parent-dashboard-heading{flex-wrap:wrap;gap:6px}.family-main .parent-dashboard-heading>span{font-size:13px;color:#777183}
.family-main .parent-dashboard-child-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.family-main .parent-dashboard-child-card{display:flex;align-items:center;padding:18px;min-height:110px;border:1px solid #e8e3f0;border-radius:14px;background:#fff;gap:14px}.family-main .parent-dashboard-child-card h3{font-size:20px;color:#343642}.family-main .parent-dashboard-child-card p{font-size:14px;color:#716b80}.family-main .parent-dashboard-child-card small{color:#777183}.family-main .parent-child-approved{margin-left:auto;background:#e7f4ef;color:#26735e;white-space:nowrap}.family-main .parent-child-avatar{width:48px;height:60px;flex:0 0 48px;border-radius:10px}
.family-next{margin-top:34px}.family-next a{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:18px 0;border-bottom:1px solid #ebe7f2}.family-next strong{font-size:16px}.family-next span{font-size:14px;color:#777183}.family-next b{grid-column:2;grid-row:1/3;align-self:center;color:#8265c8}.family-footer{font-size:13px;color:#82798f;margin-top:36px;padding-top:18px;border-top:1px solid #ebe7f2}
.family-empty{padding:28px;background:#f3effa;border-radius:14px}.family-empty h2{font-size:20px}.family-empty p{font-size:15px;color:#716b80}.family-main .parent-course-child-card{border-color:#e8e3f0;background:#fff;border-radius:14px}.family-main .parent-course-child-card li{background:#f5f2fb;color:#514762}.family-main .parent-family-filters{margin-bottom:20px}.family-main select{font-size:16px;min-height:44px}.family-main .parent-family-filters button{min-height:44px}
.family-portal-layout .parent-dashboard-shell{width:100%;margin:0}.family-portal-layout .parent-growth-main{padding:0}.family-portal-layout .parent-growth-hero{background:transparent;color:#343642;padding:0;margin-bottom:24px}.family-portal-layout .parent-growth-hero>p{display:none}.family-portal-layout .parent-growth-hero h1{font-family:inherit;font-size:27px;color:#343642}.family-portal-layout .parent-growth-hero>span{color:#716b80}.family-portal-layout .parent-growth-data-grid{grid-template-columns:minmax(0,1fr)}.family-portal-layout .parent-growth-data-card{min-width:0}.family-experience-layout .home-exp-page{max-width:100%;margin:0}
/* [FAMILY-MOBILE-20260915-002] 작은 화면은 접을 수 있는 메뉴와 44px 이상 터치 영역 */
@media(max-width:760px){html body.public-plain-layout.family-portal-layout .app{display:block;width:100%;margin:0;border-radius:0;min-height:100vh}.family-portal-layout .family-sidebar{position:static;min-height:0;padding:14px 18px;background:#f7f7fc}.family-portal-layout .content{padding:22px 18px!important}.family-menu>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-weight:600;color:#6245ac;cursor:pointer}.family-menu>summary:after{content:'펼치기';font-size:13px}.family-menu[open]>summary:after{content:'접기'}.family-menu .academy-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.family-menu .academy-nav a{justify-content:center;text-align:center;font-size:14px;padding:10px 8px;flex-wrap:wrap}.family-portal-layout .academy-brand{margin-bottom:4px}.family-main .parent-dashboard-child-grid{grid-template-columns:1fr}.family-main .parent-dashboard-child-card{padding:14px}.family-next{margin-top:26px}.family-main .parent-dashboard-heading h2{font-size:19px}.family-main .parent-dashboard-heading>span{font-size:12px}.family-account{font-size:14px}.family-intro{font-size:15px}.family-main .parent-family-filters{flex-wrap:wrap}.family-empty{padding:20px}.family-portal-layout .parent-growth-students{flex-wrap:wrap}.family-portal-layout .parent-growth-hero h1{font-size:25px}}
/* [FAMILY-SURFACE-20260915-003] 기존 크림색 카드보다 학생 화면의 흰색·보라색 테두리 우선 */
body.family-portal-layout :is(.parent-dashboard-child-card,.parent-course-child-card,.parent-growth-data-card,.parent-growth-radar-card){background:#fff;border-color:#e8e3f0;border-radius:14px}
body.family-portal-layout .parent-growth-term-filter{border-color:#e8e3f0}body.family-portal-layout .parent-growth-term-filter a.is-selected{border-color:#8265c8;color:#6245ac}
body.family-portal-layout .parent-growth-data-card>header{border-color:#e8e3f0}body.family-portal-layout .parent-growth-data-card h3{font-family:inherit}

/* [FAMILY-GROUP-CSS-20260915-009] 상위 메뉴와 하위 항목을 구분하고 현재 그룹은 펼침 */
.family-menu .family-group-nav{display:grid;grid-template-columns:1fr;gap:6px}.family-nav-group>summary{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:10px 12px;border-radius:10px;color:#666777;font-size:15px;font-weight:700;cursor:pointer;list-style:none}.family-nav-group>summary::-webkit-details-marker{display:none}.family-nav-group>summary:after{content:'＋';font-size:15px;font-weight:400}.family-nav-group[open]>summary:after{content:'−'}.family-nav-group>summary.is-current{color:#6245ac}.family-nav-group>div{border-left:1px solid #e2dcef;margin:2px 0 8px 12px;padding-left:4px}.family-menu .family-nav-group a{padding:10px 10px;font-size:14px;font-weight:500}.family-nav-group a small{font-size:10px;color:#82798f}.family-cost-list{display:grid;gap:12px}.family-cost-list>a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border:1px solid #e8e3f0;border-radius:14px;background:#fff}.family-cost-list h2{font-size:19px;margin:2px 0}.family-cost-list p{font-size:14px;color:#716b80;margin:4px 0}.family-cost-list small{font-size:12px;color:#716b80}.family-cost-list>a>span{color:#6245ac;font-size:13px;white-space:nowrap}.family-pending{display:inline-block;font-size:13px;color:#716b80;margin-bottom:8px}
@media(max-width:760px){.family-menu .family-group-nav{grid-template-columns:1fr}.family-menu .family-group-nav>a{justify-content:flex-start;padding-left:12px}.family-menu .family-nav-group a{justify-content:space-between;text-align:left;font-size:14px}.family-nav-group>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.family-nav-group>summary{min-height:44px}.family-cost-list>a{padding:16px}.family-cost-list h2{font-size:18px}}

/* [FAMILY-HUB-UI-20260915-013] 공지·학사일정·교복 폼의 읽기 쉬운 공통 구성 */
.family-hub-manager{max-width:1000px;margin:0 auto;padding:20px}.family-hub-manager header nav{display:flex;gap:16px;margin-bottom:20px}.family-hub-panel{padding:18px;border:1px solid #e3deed;border-radius:12px;background:#fff;margin:14px 0;color:#343642}.family-hub-panel summary{cursor:pointer;min-height:36px;font-size:16px}.family-hub-panel summary small{display:block;font-size:13px;color:#716b80;margin-bottom:5px}.family-hub-panel h2{font-size:19px;margin:0 0 8px}.family-hub-meta{font-size:13px;color:#716b80}.family-notice-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;font-size:16px}.family-hub-form{display:grid;gap:14px;margin-top:14px}.family-hub-form label,.family-hub-row label{display:grid;gap:6px;font-size:14px;min-width:0}.family-hub-form :is(input:not([type=checkbox]),select,textarea),.family-hub-row :is(input,select){width:100%;min-width:0;min-height:44px;padding:9px 10px;border:1px solid #dcd7e8;border-radius:8px;background:#fff;font:inherit;color:#343642}.family-hub-form textarea{resize:vertical}.family-hub-form .family-hub-check{display:flex;align-items:center;gap:10px;min-height:44px}.family-hub-check input{width:18px;height:18px}.family-hub-panel button,.family-hub-row button{min-height:44px;border:0;background:#7658b5;color:white;border-radius:8px;padding:9px 16px;font:inherit;cursor:pointer}.family-hub-form>button{justify-self:start}.family-hub-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:12px 0}.family-hub-row label{flex:1;min-width:100px}.family-calendar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e5dfef;padding:16px 0}.family-calendar-row strong{font-size:16px}.family-calendar-row p,.family-calendar-row>span{font-size:13px;color:#716b80;margin:5px 0}.family-calendar-row>span{white-space:nowrap}@media(max-width:600px){.family-hub-panel{padding:14px}.family-hub-manager{padding:12px}.family-calendar-row{flex-wrap:wrap}.family-hub-row button{min-width:88px}}

/* [FAMILY-HUB-BOX-20260915-015] 교직원 레이아웃에서도 입력칸 패딩이 패널 폭을 넘지 않도록 고정 */
.family-hub-manager,.family-hub-manager *{box-sizing:border-box}
/* [FAMILY-NOTICE-BOARD-20260915-003] 반별 내비게이션과 밀도 있는 공지 목록; 모바일은 가로 메뉴 */
.family-hub-manager{max-width:1400px}.notice-workspace{display:grid;grid-template-columns:210px minmax(0,1fr);border:1px solid #e3deed;border-radius:16px;overflow:hidden;background:#fff;min-height:600px}.notice-sidebar{background:#f6f4fb;padding:24px 16px;border-right:1px solid #e3deed}.notice-sidebar>strong{font-size:18px}.notice-sidebar>p{font-size:13px;color:#726a80;margin:6px 0 22px}.notice-sidebar nav{display:grid;gap:4px}.notice-sidebar a{padding:12px;border-radius:8px;color:#50495f;font-size:15px;text-decoration:none}.notice-sidebar a[aria-current]{background:#e8dffd;color:#5d3eaa;font-weight:700}.notice-main{min-width:0;padding:26px}.notice-heading h2{font-size:23px;margin:0 0 8px}.notice-heading p{font-size:14px;color:#716b80;line-height:1.7;margin:0 0 22px}.notice-compose{margin:0 0 24px;padding:0;border:0}.notice-compose>summary{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:8px;background:#7052b3;color:white;list-style:none;font-weight:600}.notice-compose>summary::-webkit-details-marker{display:none}.notice-compose[open]{padding-bottom:20px;border-bottom:1px solid #e3deed;border-radius:0}.notice-list-heading{display:flex;justify-content:space-between;gap:8px;padding:12px 0 16px;border-bottom:2px solid #e3deed}.notice-list-heading>span{font-size:12px;color:#716b80}.notice-entry{border-bottom:1px solid #e9e5f0}.notice-row{display:grid;grid-template-columns:minmax(0,1fr) 145px 60px;align-items:center;gap:16px;padding:18px 0;cursor:pointer;list-style:none}.notice-row::-webkit-details-marker{display:none}.notice-row-title{display:grid;gap:6px;min-width:0}.notice-row-title strong{font-size:16px;overflow-wrap:anywhere}.notice-row-title>span,.notice-row time{font-size:13px;color:#716b80}.notice-state{font-size:12px;background:#f0edf5;color:#716b80;padding:5px 8px;border-radius:6px;text-align:center}.notice-state.is-public{background:#e6f4ef;color:#24755a}.notice-detail{padding:0 0 20px}.notice-entry[open]>.notice-row strong{color:#6343a8}.notice-detail button{min-height:44px;border:0;border-radius:8px;padding:10px 16px;background:#7052b3;color:#fff;cursor:pointer}.notice-empty{text-align:center;padding:64px 14px;color:#50495f}.notice-empty p{font-size:14px;color:#716b80;line-height:1.7}
@media(max-width:760px){.notice-workspace{grid-template-columns:1fr;min-height:0}.notice-sidebar{padding:16px;border-right:0;border-bottom:1px solid #e3deed}.notice-sidebar>p{margin-bottom:12px}.notice-sidebar nav{display:flex;overflow-x:auto;max-width:100%;gap:6px}.notice-sidebar a{flex:none;white-space:nowrap}.notice-main{padding:18px 16px}.notice-row{grid-template-columns:minmax(0,1fr) 60px;gap:8px}.notice-row time{grid-row:2}.notice-state{grid-column:2;grid-row:1/3}.notice-list-heading{flex-wrap:wrap}.notice-heading h2{font-size:21px}}
/* [FAMILY-NOTICE-BOARD-20260915-004] 모바일에서 전역 고정 사이드바가 게시판을 가리지 않도록 페이지 범위 조정 */
@media(max-width:760px){body.family-manager-layout .app{display:block!important;padding-top:56px;width:100%;min-width:0}body.family-manager-layout #app-sidebar{display:none!important}body.family-manager-layout .topbar{overflow-x:auto;max-width:100vw}body.family-manager-layout .content{margin:0!important;padding:12px!important;min-width:0;width:100%}body.family-manager-layout .family-hub-manager{padding:8px 0;width:100%}body.family-manager-layout .notice-sidebar nav{max-height:160px}body.family-manager-layout .family-hub-manager>header h1{font-size:25px}}
/* [FAMILY-NOTICE-BOARD-20260915-005] 긴 반 메뉴의 최소 너비가 모바일 본문을 확장하지 않도록 제한 */
.notice-sidebar{min-width:0}.notice-heading p{white-space:normal;overflow-wrap:anywhere}@media(max-width:760px){.notice-workspace{grid-template-columns:minmax(0,1fr)}}
/* [FAMILY-HOMEWORK-20260916-006] 과목 링크와 큰 카드 없는 숙제 목록 */
.family-course-link{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:36px;text-decoration:none;color:inherit}.family-course-link:hover{color:#6245ac;text-decoration:underline}.family-homework-child{margin:24px 0}.family-homework-child h2{font-size:20px}.family-homework-child h2 small{font-size:13px;color:#716b80}.family-homework-group{border-bottom:1px solid #e4deed;padding:14px 0}.family-homework-group>summary{font-weight:600;cursor:pointer;min-height:32px}.family-homework-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid #eeeaf3}.family-homework-row>div{min-width:0}.family-homework-row strong{display:block;font-size:16px;overflow-wrap:anywhere;margin:5px 0}.family-homework-row small,.family-homework-row p{font-size:13px;color:#716b80;margin:4px 0}.family-homework-row>b{color:#6245ac;font-size:15px;white-space:nowrap}.family-homework-row details{font-size:13px;margin-top:8px}.family-homework-row summary{cursor:pointer}
/* [FAMILY-HW-SIMPLE-20260916-004] 넓은 화면 전체를 사용하는 한 줄 목록과 모바일 두 줄 정보 */
.family-homework-row{display:grid;grid-template-columns:90px minmax(180px,1fr) 130px 150px 64px 54px;align-items:center;gap:16px;position:relative;padding:20px 8px;min-height:76px}.family-hw-subject{font-size:14px;font-weight:600;color:#66548e}.family-hw-title strong{font-size:17px;margin:0;line-height:1.5}.family-hw-range,.family-hw-due{font-size:14px;color:#656070;white-space:nowrap}.family-homework-row .family-hw-progress{font-size:17px;text-align:right}.family-homework-row .family-hw-description{margin:0;font-size:14px}.family-hw-description>summary{white-space:nowrap;color:#6550aa;min-height:32px;display:flex;align-items:center}.family-hw-description>summary:before{content:'＋';margin-right:4px}.family-hw-description[open]>summary:before{content:'−'}.family-hw-description[open]{grid-column:1/-1;border-top:1px dashed #e4deed;padding-top:10px}.family-homework-row .family-hw-description p{font-size:14px;margin:8px 0;line-height:1.7}.family-homework-group>summary{font-size:17px}.family-homework-row:hover{background:#f9f7fd}
@media(max-width:1150px){.family-homework-row{grid-template-columns:66px minmax(130px,1fr) 100px 128px 55px 48px;gap:10px}.family-hw-title strong{font-size:16px}.family-hw-range,.family-hw-due{font-size:13px}}
@media(max-width:900px){.family-homework-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px 12px;padding:16px 4px}.family-hw-title{grid-column:1/3;grid-row:1}.family-homework-row .family-hw-progress{grid-column:3;grid-row:1}.family-hw-subject{grid-column:1;grid-row:2;font-size:13px}.family-hw-range{grid-column:2;grid-row:2}.family-hw-due{grid-column:1/3;grid-row:3}.family-homework-row .family-hw-description{grid-column:3;grid-row:3}.family-homework-row .family-hw-description[open]{grid-column:1/-1;grid-row:4}.family-hw-no-description{display:none}}
/* [FAMILY-CALENDAR-VIEW-20260916-004] 월별 달력·목록 전환과 모바일 7열 달력 */
.family-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.family-calendar-toolbar .family-hub-row{flex:1;max-width:430px}.family-calendar-switch{display:flex;gap:4px;background:#f0ecf8;padding:4px;border-radius:10px}.family-calendar-switch a{padding:10px 14px;border-radius:8px;color:#665877;text-decoration:none;font-size:14px;white-space:nowrap}.family-calendar-switch a[aria-current]{background:#fff;color:#6245ac;font-weight:700}.family-calendar-month{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.family-calendar-month h2{font-size:22px;margin:0}.family-calendar-month a{padding:10px;font-size:14px;color:#6245ac}.family-month-grid{border:1px solid #e5deed;border-radius:12px;overflow:hidden}.family-month-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.family-month-week>[role=columnheader]{background:#f2edf9;text-align:center;padding:12px;font-size:14px;font-weight:600}.family-month-day{min-width:0;min-height:120px;padding:8px;border-top:1px solid #e5deed;border-right:1px solid #e5deed;background:#fff}.family-month-day:last-child{border-right:0}.family-month-day.is-empty{background:#f7f6fa}.family-month-day time{display:block;margin-bottom:8px;font-size:14px;font-weight:600}.family-month-day:first-child time{color:#b84058}.family-month-day:last-child time{color:#416ab5}.family-month-day.is-today{box-shadow:inset 0 0 0 2px #9270cf;background:#faf7ff}.family-month-event{display:block;width:100%;border:0;border-radius:5px;background:#ede6fb;color:#533f86;padding:6px;text-align:left;font-size:12px;line-height:1.4;margin:4px 0;cursor:pointer;overflow-wrap:anywhere}.family-month-event.scope-elem{background:#e6f3ee;color:#28624f}.family-month-event.scope-mid_high,.family-month-event.scope-mid{background:#e8effc;color:#365889}.family-month-event.scope-high{background:#fff0df;color:#825d2e}.family-calendar-dialog{border:1px solid #e5deed;border-radius:16px;width:460px;max-width:calc(100vw - 40px);box-sizing:border-box;padding:24px;color:#343642}.family-calendar-dialog::backdrop{background:#20203566}.family-calendar-dialog h2{font-size:21px;overflow-wrap:anywhere}.family-calendar-dialog button{min-height:44px;border:0;border-radius:8px;background:#7254b4;color:white;padding:10px 20px;cursor:pointer}
@media(max-width:600px){.family-calendar-toolbar{gap:4px}.family-calendar-toolbar .family-hub-row{width:100%;flex-basis:100%}.family-calendar-switch{margin-left:auto}.family-calendar-month h2{font-size:20px}.family-month-day{padding:4px;min-height:88px}.family-month-day time{font-size:12px;margin:3px}.family-month-week>[role=columnheader]{padding:10px 0;font-size:12px}.family-month-event{font-size:11px;padding:4px 2px}}
/* [FAMILY-CALENDAR-VIEW-20260916-005] 긴 일정도 날짜 칸을 과도하게 늘리지 않고 클릭하여 전체 내용 확인 */
.family-month-grid .family-month-event{font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:32px}@media(max-width:600px){.family-month-grid .family-month-event{font-size:11px;line-height:1.4;padding:4px 2px}}
/* [FAMILY-COST-COMPACT-20260916-001] 폴더 탭 크기를 한 단계 축소 */
/* [FAMILY-COST-FOLDERS-20260916-003] 상단 폴더형 탭과 하나로 이어지는 내용 영역 */
.family-cost-folders{margin-top:28px}.family-cost-tabs{display:flex;gap:6px;align-items:end;overflow-x:auto;padding:10px 2px 0}.family-cost-tabs [role=tab]{position:relative;flex:0 0 auto;min-width:108px;min-height:42px;padding:10px 16px;border:1px solid #ddd5eb;border-bottom:0;border-radius:14px 20px 0 0;background:#ece7f6;color:#766786;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;isolation:isolate}.family-cost-tabs [role=tab]:before{content:'';position:absolute;left:-1px;top:-7px;width:56%;height:12px;background:inherit;border:1px solid #ddd5eb;border-bottom:0;border-radius:8px 12px 0 0;z-index:-1}.family-cost-tabs [role=tab]>span{margin-right:5px;font-size:18px}.family-cost-tabs [aria-selected=true]{background:#fff;color:#6245ac;box-shadow:inset 0 -3px #8b6ec2}.family-cost-tabs [role=tab]:focus-visible{outline:2px solid #7553b3;outline-offset:-4px}.family-cost-tab-panel{padding:32px;border:1px solid #ddd5eb;border-radius:0 14px 14px 14px;background:#fff;min-height:240px}.family-cost-tab-panel[hidden]{display:none}.family-cost-tab-panel>small{font-size:13px;color:#80748e}.family-cost-tab-panel h2{font-size:23px;margin:8px 0 12px}.family-cost-tab-panel p{color:#73687e;line-height:1.7;font-size:15px}.family-cost-status{display:inline-block;margin-top:16px;padding:6px 12px;background:#f1edf8;color:#786491;font-size:13px;border-radius:7px}.family-cost-open{display:inline-flex;align-items:center;margin-top:20px;min-height:44px;padding:10px 16px;background:#7454b1;color:#fff;border-radius:9px;text-decoration:none;font-size:15px}@media(max-width:600px){.family-cost-tabs [role=tab]{min-width:92px;padding:9px 11px;font-size:13px}.family-cost-tab-panel{padding:22px 18px}.family-cost-tab-panel h2{font-size:21px}}
/* [FAMILY-HOME-FOLDERS-20260916-004] 현재 상황 요약과 폴더별 간결한 서비스 목록 */
.family-home-now{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 32px}.family-home-now>article{min-width:0;padding:18px;background:#fff;border:1px solid #e7e1ef;border-radius:12px}.family-home-now header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.family-home-now h2{font-size:16px;margin:0}.family-home-now h2 b{color:#7454b1}.family-home-now header>a{font-size:12px;white-space:nowrap;color:#7454b1}.family-home-now article>p{font-size:14px;color:#82758d}.family-home-update{display:block;padding:12px 0;border-top:1px solid #f0ecf5;text-decoration:none}.family-home-update strong{display:block;font-size:14px;overflow-wrap:anywhere;color:#42394f}.family-home-update small{display:block;color:#7c7087;font-size:12px;margin-top:6px}.family-home-folders .family-cost-tab-panel{min-height:170px;padding:12px 22px}.family-home-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.family-home-services>a{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:18px 2px;border-bottom:1px solid #efebf4;text-decoration:none;color:#42394f}.family-home-services strong{font-size:16px}.family-home-services small{font-size:13px;color:#7c7087}.family-home-services span{grid-column:2;grid-row:1/3;align-self:center;color:#7454b1}@media(max-width:1000px){.family-home-now{grid-template-columns:1fr}.family-home-now>article{padding:16px}}@media(max-width:600px){.family-home-services{grid-template-columns:1fr}.family-home-folders .family-cost-tab-panel{padding:8px 16px}}

/* [FAMILY-HOME-DEADLINE-20260916-002] 마감 안내와 상태를 읽기 쉽게 구분 */
.family-home-update .family-home-hw-range,.family-home-update .family-home-hw-due{font-size:13px;color:#554760;line-height:1.5;overflow-wrap:anywhere}.family-home-hw-due b{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:4px;background:#fff0e7;color:#9b451b;font-size:12px}

/* [FAMILY-HW-TABLE-20260917-002] 과목별 간결한 3열 숙제 표 */
.family-hw-table-wrap{overflow-x:auto;margin:16px 0}.family-hw-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}.family-hw-table .family-hw-course-col{width:100px}.family-hw-table th,.family-hw-table td{padding:12px 14px;text-align:left;vertical-align:top;border:1px solid #e7e1ef}.family-hw-table thead th{background:#f4f0fa;font-weight:700}.family-hw-table thead small{margin-left:5px;color:#7454b1}.family-hw-table th.family-hw-overdue{background:#fff0e7;color:#92461f}.family-hw-table td.family-hw-overdue{background:#fffaf6}.family-hw-entry+ .family-hw-entry{border-top:1px solid #e7e1ef;margin-top:10px;padding-top:10px}.family-hw-entry>div{display:flex;justify-content:space-between;gap:12px}.family-hw-entry strong{font-size:14px;overflow-wrap:anywhere}.family-hw-entry b{color:#7454b1;white-space:nowrap}.family-hw-entry small{display:block;margin-top:5px;color:#756a80;font-size:12px;line-height:1.5}.family-hw-entry details{margin-top:4px;font-size:12px}.family-hw-none{color:#a298af}.family-hw-completed{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 0;border-top:1px solid #e7e1ef;font-size:14px}.family-hw-completed small{color:#756a80}.family-hw-completed details{width:100%}@media(max-width:600px){.family-hw-table .family-hw-course-col{width:52px}.family-hw-table th,.family-hw-table td{padding:9px 7px}.family-hw-table thead th{font-size:13px}.family-hw-entry>div{display:block}.family-hw-entry b{display:block;font-size:12px;margin-top:3px}.family-hw-table strong{font-size:13px}}

/* [PARENT-GROWTH-FOLDERS-20260917-004] 선택된 폴더만 전체 너비로 표시 */
.family-growth-folder-content{display:block!important}.parent-growth-detail [data-growth-panel][hidden]{display:none!important}.parent-growth-detail [data-growth-panel]{border-radius:0 12px 12px 12px;margin-top:0}.parent-growth-detail [data-growth-panel="graphs"]>summary{display:none}.parent-growth-detail [data-growth-panel="graphs"]{padding:16px;border:1px solid #e7e1ef;background:#fff}

/* [STUDENT-HW-FOLDERS-20260917-003] 과목 폴더와 선택된 숙제 영역 연결 */
.student-hw-folder-panel{padding:18px;border:1px solid #ddd5eb;border-radius:0 12px 12px 12px;background:#fff}.student-hw-folder-panel[hidden]{display:none!important}.student-hw-folder-panel .academy-section-head{margin-top:0}@media(max-width:600px){.student-hw-folder-panel{padding:12px}}

/* [STUDENT-HOME-COLUMNS-20260917-001] 공통 외부 폭은 유지하고 홈 보조 정보는 기존 오른쪽 열로 복원 */
.academy-layout:not(.family-portal-layout) .academy-shell{width:calc(100% - 40px);max-width:1536px;box-sizing:border-box;margin:20px auto}
.academy-layout .academy-main>.academy-center,.academy-layout .academy-main>.academy-courses-page,.academy-layout .academy-main>.academy-records{width:100%;min-width:0;box-sizing:border-box}
@media(max-width:760px){.academy-layout:not(.family-portal-layout) .academy-shell{width:100%;margin:0;border-radius:0}}
/* [STUDENT-HOME-SUMMARY-20260917-002] 과목명과 남은 건수를 한 줄로 표시 */
.academy-homework-summary{border:1px solid #e5ddef;border-radius:12px;overflow:hidden}
.academy-homework-summary>a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #eee8f5}
.academy-homework-summary>a:last-child{border-bottom:0}.academy-homework-summary>a:hover{background:#f4effc}.academy-homework-summary>a>span{color:#7454b1;white-space:nowrap}.academy-homework-summary .academy-empty{padding:16px;margin:0}

/* [STUDENT-STABLE-GUTTER-20260917-001] 짧고 긴 학생 화면을 오갈 때 세로 스크롤바로 중앙 정렬이 이동하지 않도록 공간 유지 */
html:has(body.academy-layout:not(.family-portal-layout)){scrollbar-gutter:stable}

/* [STUDENT-HOME-CALENDAR-20260917-003] 오른쪽 보조 영역 아래 전체 폭 월별 일정, 모바일 줄바꿈 */
.student-academic-calendar{grid-column:1/-1;width:100%;min-width:0;border-top:1px solid #e9e3ef;padding-top:24px}.student-academic-calendar .academy-month-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}.student-academic-calendar .academy-month-nav a{font-size:13px;color:#7454b1;padding:8px 0}.student-calendar-list{list-style:none;margin:0;padding:0;border:1px solid #e5ddef;border-radius:12px;overflow:hidden}.student-calendar-list li{display:flex;gap:20px;padding:14px 18px;border-bottom:1px solid #eee8f5}.student-calendar-list li:last-child{border-bottom:0}.student-calendar-list li>span{flex:0 0 130px;color:#756a80;font-size:13px}.student-calendar-list strong{overflow-wrap:anywhere}@media(max-width:600px){.student-academic-calendar{order:2}.student-calendar-list li{flex-direction:column;gap:4px}.student-calendar-list li>span{flex-basis:auto}}

/* [STUDENT-GROWTH-COLUMNS-20260917-001] 학생 폴더 안에서 활동 왼쪽·평가 오른쪽, 단일 카드 전체 폭 */
.academy-courses-page .parent-growth-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.academy-courses-page .parent-growth-data-grid>.parent-growth-data-card:only-child{grid-column:1/-1}.academy-courses-page .parent-growth-detail{margin-top:0;min-width:0}.academy-courses-page .parent-growth-data-card{min-width:0}.academy-courses-page .parent-growth-detail-head{flex-wrap:wrap}

/* [STUDENT-GROWTH-COLUMNS-20260917-002] 좁은 화면에서 상세 카드를 세로로 배치 */
@media(max-width:950px){.academy-courses-page .parent-growth-data-grid{grid-template-columns:minmax(0,1fr)}}

/* [STUDENT-ACTIVITY-FOLDERS-20260917-004] 활동 폴더를 왼쪽 한 열에 묶어 평가 열 유지 */
.student-activity-folders{min-width:0}.student-activity-folders:only-child{grid-column:1/-1}.student-activity-folders>.parent-growth-data-card{border-top-left-radius:0}.student-activity-folders [hidden]{display:none!important}

/* [STUDENT-GROWTH-EMPTY-COLUMN-20260917-003] PC는 빈 열 보존, 모바일은 불필요한 빈 줄 생략 */
.student-growth-empty-column{min-width:0}@media(max-width:950px){.student-growth-empty-column{display:none}}

/* [PORTAL-CALENDAR-SPAN-20260917-006] 날짜 배경 위에서 주 단위 연속 막대와 겹침 행 표시 */
.portal-calendar-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}.portal-calendar-scroll:focus-visible{outline:2px solid #8265c8;outline-offset:3px}.portal-span-calendar{min-width:700px}.portal-calendar-weekdays>div{background:#f2edf9;text-align:center;padding:12px;font-size:14px;font-weight:600}.portal-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:relative;min-height:max(120px,calc(52px + var(--calendar-lanes)*36px))}.portal-calendar-week>.family-month-day{grid-row:1;min-height:0}.portal-calendar-week>.family-month-day:nth-child(7){border-right:0}.portal-calendar-week .is-empty time{color:#a4a0ad}.portal-calendar-bars{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:32px;gap:4px 0;padding:40px 4px 12px;align-content:start;pointer-events:none;min-width:0}.portal-span-calendar .portal-calendar-bars .family-month-event{display:flex;align-items:center;justify-content:center;gap:8px;width:auto;min-width:0;min-height:32px;margin:0 2px;padding:4px 8px;white-space:nowrap;overflow:hidden;border:1px solid currentColor;pointer-events:auto;text-align:center;font:inherit;font-size:13px;line-height:1.4}.portal-calendar-bars strong{overflow:hidden;text-overflow:ellipsis;min-width:0}.portal-calendar-bars small{flex-shrink:0;font-size:11px}.portal-calendar-bars .continues-before{border-left-style:dashed!important;border-top-left-radius:0;border-bottom-left-radius:0}.portal-calendar-bars .continues-after{border-right-style:dashed!important;border-top-right-radius:0;border-bottom-right-radius:0}.student-academic-calendar{min-width:0}.portal-calendar-week>.family-month-day:nth-child(7) time{color:#416ab5}
@media(max-width:600px){.portal-calendar-scroll{padding-bottom:8px}.portal-calendar-bars small{display:none}.portal-span-calendar .portal-calendar-bars .family-month-event{font-size:12px}}

/* [PORTAL-CALENDAR-SPAN-20260917-008] 모바일 왼쪽에서도 긴 일정 제목을 읽고 가로 탐색 가능 */
.portal-calendar-scroll-hint{display:none}@media(max-width:600px){.portal-calendar-scroll-hint{display:block;color:#716b80;font-size:13px;margin:8px 0}.portal-span-calendar .portal-calendar-bars .family-month-event{justify-content:flex-start}}

/* [GROWTH-CHART-TYPE-20260917-007] 0~100 공통 눈금과 긴 항목명 범례 */
.parent-growth-radar-card .parent-growth-cartesian{height:auto;max-height:none;aspect-ratio:280/220}.parent-growth-radar-card .growth-chart-tick{font-size:9px;font-weight:500}.parent-growth-radar-card .growth-chart-label,.parent-growth-radar-card .growth-chart-score{font-size:11px}.growth-chart-line{fill:none;stroke:#126b58;stroke-width:2.5;stroke-linejoin:round}.growth-chart-dot{fill:#126b58;stroke:#fff;stroke-width:1}.growth-chart-bar{fill:#8265c8}.growth-chart-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;padding-left:22px;margin:0 0 12px;font-size:12px;color:#405b52;overflow-wrap:anywhere}.parent-growth-radar-card[data-chart-type]{min-width:0}
