/* Parent work surface: current reasons and feedback before secondary statistics. */
.portal-shell { max-width: 1080px; }
.portal-top { align-items: center; gap: 12px; padding: 0 2px 16px; border-bottom: 1px solid #dfd5c4; }
.portal-top { padding: 18px; border: 1px solid #d8c7ab; border-radius: 16px; background: #fffdf8; }
.portal-top > div { min-width: 0; }
.portal-top h1 { font-size: 1.75rem; line-height: 1.35; }
.portal-top .portal-brand { font-size: .8125rem; margin: 0 0 6px; line-height: 1.6; color: #70634f; }
.portal-top p { font-size: .875rem; line-height: 1.7; margin-top: 8px; }
#parentSiteMenu { position: relative; flex: none; }
#parentSiteMenu > summary { cursor: pointer; min-height: 44px; padding: 10px 14px; box-sizing: border-box; border: 1px solid #b3a386; border-radius: 10px; font-weight: 700; font-size: .875rem; list-style-position: inside; }
#parentSiteMenu .portal-site-nav { position: absolute; z-index: 50; right: 0; top: calc(100% + 8px); display: grid; grid-template-columns: 1fr; width: min(280px, calc(100vw - 40px)); max-height: 65dvh; overflow-y: auto; overscroll-behavior: contain; padding: 12px; background: #fffdf8; border: 1px solid #d8c7ab; border-radius: 12px; box-shadow: 0 12px 32px #21180f26; box-sizing: border-box; }
#parentSiteMenu .portal-site-nav a { width: 100%; border-radius: 8px; justify-content: flex-start; font-size: .875rem; }
.portal-card { box-shadow: none; border-radius: 12px; }
.student-strip { padding: 16px 18px; align-items: center; }
.student-strip h2 { font-size: 1.2rem; line-height: 1.5; overflow-wrap: anywhere; }
#studentMeta { display: block; font-size: .8125rem; line-height: 1.7; }
.student-strip .portal-actions { gap: 6px; }
.student-strip .portal-button { padding: 8px 12px; font-size: .8125rem; }
#dashboardStatus:empty { display: none; }
.parent-task-nav { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; padding: 4px; border-radius: 12px; }
.parent-task-nav a { min-width: 0; min-height: 44px; padding: 8px 3px; border-radius: 8px; font-size: .875rem; }
.parent-task-nav a:first-child { background: transparent; color: #493c29; }
.parent-task-nav a[aria-current="location"] { background: #3e593b; color: white; }
.parent-task-nav a, .portal-button, summary { touch-action: manipulation; }
#parentSummaryGrid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.metric-card { padding: 16px; }
.metric-value { font-variant-numeric: tabular-nums; }
.parent-history-details > summary { cursor: pointer; padding: 14px 16px; min-height: 48px; box-sizing: border-box; font-weight: 700; color: #54452f; line-height: 1.65; }
.parent-history-details[open] > summary { border-bottom: 1px solid #e0d0b8; margin-bottom: 12px; }
#parentExtraMetrics > .metric-grid { padding: 0 12px 12px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
#parentExtraMetrics .metric-value { font-size: 1.25rem; line-height: 1.5; overflow-wrap: anywhere; }
#missingAllTimeWrap { margin-top: 18px; border-top: 1px solid #dfd5c4; }
#missingAllTimeWrap > summary { padding-left: 0; }
.portal-section-head { gap: 8px; flex-wrap: wrap; }
.portal-section-head small { line-height: 1.65; }
.portal-section { padding: 20px; }
.portal-section h2 { font-size: 1.15rem; }
.portal-list p, .missing-work-reason { line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.missing-work-reply label { display: block; margin-bottom: 6px; }
.missing-work-reply-input { font-size: 1rem; line-height: 1.7; }
.missing-work-reply-status { display: block; margin-top: 8px; }
.missing-work-reply-status:empty { display: none; }
#missingWorkSection, #gradeSummarySection { scroll-margin-top: 20px; }
.parent-login-title { margin: 0; font-size: 1.25rem; }
.parent-login-help { margin: 0; color: #70634f; line-height: 1.7; font-size: .875rem; }
.parent-login-benefits { padding: 14px 16px; border: 1px solid #d8c7ab; border-radius: 12px; background: #f7f1e6; }
.parent-login-benefits h3 { margin: 0 0 8px; color: #2c2416; font-size: .94rem; }
.parent-login-benefits ul { margin: 0; padding-left: 19px; display: grid; gap: 4px; color: #554731; font-size: .875rem; line-height: 1.55; }
#loginPanel { gap: 18px; border: 0; background: transparent; box-shadow: none; overflow: visible; }
#loginPanel .portal-login-form, #loginPanel .portal-login-copy { border: 1px solid #d8c7ab; border-radius: 16px; background: #fffdf8; }
#loginPanel .portal-login-form { gap: 14px; }
#loginPanel .portal-login-copy { background: #f7efe1; }
#loginPanel .portal-button:not(.secondary) { border-color: #8b6914; background: #8b6914; color: #fffdf8; }
#loginPanel .portal-button:not(.secondary):hover { background: #6b4f0e; }
.portal-login-copy { border-right: 0; border-left: 1px solid #e0d0b8; }
.portal-field input { font-size: 1rem; }
.parent-history-details[hidden] { display: none !important; }
@media (hover:hover) and (pointer:fine) {
  .parent-task-nav a:not([aria-current]):hover, .parent-history-details > summary:hover { background: #efe8db; text-decoration: none; }
}
@media (max-width:600px) {
  .portal-shell { width: calc(100% - 24px); padding-top: max(18px, env(safe-area-inset-top)); }
  .portal-top { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .portal-top > div { width: 100%; }
  #parentSiteMenu { margin-left: auto; }
  .portal-top h1 { font-size: 1.5rem; }
  .portal-top p:not(.portal-brand) { margin-top: 6px; }
  .student-strip { padding: 14px; }
  .student-strip .portal-actions { display: flex; width: auto; }
  .student-strip .portal-actions .portal-button { width: auto; }
  .parent-task-nav { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .parent-task-nav a { font-size: .8125rem; }
  .portal-section { padding: 16px; }
  .portal-login-form { padding: 20px 16px; }
  .portal-login-copy { padding: 18px 16px; border-left: 0; border-top: 1px solid #e0d0b8; }
  #parentExtraMetrics > .metric-grid { grid-template-columns: 1fr; }
}

/* 로그인 화면 오른쪽 안내 상자가 왼쪽 폼 높이만큼 늘어나 아래 절반이 비던 문제 */
#loginPanel { align-items: start; }
#loginPanel .portal-login-copy { align-self: start; }
