/* ai-teacher-room-clean-20260531-v2
   대시보드에는 작은 진입 메뉴만 두고, AI 기능은 전용 피드백방에서 간결하게 사용 */
.ai-nav-highlight{
  color:#4f46e5!important;
  background:linear-gradient(90deg,rgba(91,75,232,.08),rgba(255,255,255,0));
  border:1px solid rgba(91,75,232,.10);
}
.ai-nav-highlight::after{
  content:'AI';
  margin-left:auto;
  font-size:0.5625rem;
  font-weight:950;
  color:#4f46e5;
  background:#f3f0ff;
  border:1px solid #e4ddff;
  border-radius:999px;
  padding:3px 7px;
}
.dashboard-ai-teacher-entry{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:12px 0 16px;
  padding:14px 16px;
  border:1px solid #e3e8f1;
  border-radius:20px;
  background:linear-gradient(135deg,#fff 0%,#fafbff 100%);
  box-shadow:0 8px 24px rgba(15,23,42,.04);
}
.ai-entry-copy{display:flex;align-items:center;gap:12px;min-width:0;}
.ai-entry-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:15px;background:#f3f0ff;border:1px solid #e4ddff;font-size:1.1875rem;flex:0 0 auto;}
.ai-entry-copy .portal-kicker{margin:0 0 3px;color:#5b4be8!important;font-size:0.6875rem;font-weight:950;letter-spacing:.04em;}
.ai-entry-copy h2{margin:0;color:#101828;font-size:1rem;font-weight:950;line-height:1.25;letter-spacing:-.03em;}
.ai-entry-copy p:not(.portal-kicker){margin:4px 0 0;color:#667085;font-size:0.75rem;font-weight:720;line-height:1.35;}
.ai-entry-link{flex:0 0 auto;text-decoration:none;white-space:nowrap;}

.ai-teacher-room-page{
  max-width:1160px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.ai-room-clean-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding:24px 26px;
  border:1px solid #e3e8f1;
  border-radius:26px;
  background:linear-gradient(135deg,#fff 0%,#fafbff 100%);
  box-shadow:0 12px 32px rgba(15,23,42,.045);
  position:relative;
  overflow:hidden;
}
.ai-room-clean-header::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:5px;
  border-radius:0 999px 999px 0;
  background:linear-gradient(180deg,#5b4be8,#9b87ff);
}
.ai-room-title-block{position:relative;z-index:1;min-width:0;}
.ai-room-title-block .portal-kicker{margin:0 0 8px;color:#5b4be8!important;font-size:0.75rem;font-weight:950;letter-spacing:.04em;}
.ai-room-title-block h1{margin:0;color:#101828;font-size:clamp(28px,3vw,38px);line-height:1.12;font-weight:980;letter-spacing:-.055em;}
.ai-room-title-block p:not(.portal-kicker){margin:10px 0 0;max-width:650px;color:#667085;font-size:0.875rem;line-height:1.55;font-weight:720;}
.ai-room-status-wrap{position:relative;z-index:1;flex:0 0 410px;}
.dashboard-ai-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.dashboard-ai-status-grid>div{min-width:0;padding:13px 14px;border:1px solid #e5e8f0;border-radius:17px;background:#fff;box-shadow:0 6px 16px rgba(15,23,42,.03);}
.dashboard-ai-status-grid span{display:block;color:#667085;font-size:0.6875rem;font-weight:900;line-height:1.15;white-space:nowrap;}
.dashboard-ai-status-grid b{display:block;margin-top:5px;color:#101828;font-size:1.25rem;font-weight:980;letter-spacing:-.045em;}

.ai-room-workbench{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ai-room-create-card{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px;
  border:1px solid #e3e8f1;
  border-radius:24px;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.035);
}
.ai-room-create-card.primary-create{background:linear-gradient(135deg,#fff 0%,#fbfaff 100%);border-color:#ded8ff;}
.ai-room-create-card h2{margin:0 0 7px;color:#101828;font-size:1.25rem;font-weight:950;letter-spacing:-.04em;}
.ai-room-create-card p:not(.portal-label){margin:0;color:#667085;font-size:0.8125rem;font-weight:720;line-height:1.45;}
.ai-room-create-card .portal-btn{min-height:42px;border-radius:14px;font-weight:950;white-space:nowrap;text-decoration:none;}
.ai-room-create-card .portal-btn:disabled{opacity:.55;cursor:not-allowed;}

.ai-room-mini-info{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border:1px solid #e8edf5;
  border-radius:20px;
  background:#fff;
}
.dashboard-ai-status{margin:0;color:#667085;font-size:0.75rem;line-height:1.45;font-weight:780;}
.dashboard-ai-status b{color:#101828;}
.ai-room-chip-row{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
.ai-room-chip-row span{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#f7f8fc;border:1px solid #e8edf5;color:#667085;font-size:0.6875rem;font-weight:900;white-space:nowrap;}

.ai-room-results-card{border-color:#e3e8f1!important;border-radius:24px!important;box-shadow:0 8px 24px rgba(15,23,42,.035)!important;}
.ai-room-results-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.ai-room-results-head h2{margin:0;color:#101828;font-size:1.375rem;font-weight:950;letter-spacing:-.04em;}
.ai-room-results-head .portal-label{margin:0 0 5px;}
.ai-room-result-list{gap:10px!important;}
.ai-teacher-room-page .portal-feedback-card{
  padding:16px 18px!important;
  border:1px solid #e8edf5!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.ai-teacher-room-page .portal-feedback-card .status{align-items:center!important;gap:10px!important;margin-bottom:9px!important;}
.ai-teacher-room-page .portal-feedback-card h3{font-size:1rem!important;line-height:1.35!important;letter-spacing:-.03em!important;}
.ai-teacher-room-page .ai-feedback-text{
  max-height:180px;
  overflow:auto;
  padding:12px 14px;
  border-radius:14px;
  background:#fbfcff;
  border:1px solid #eef2f7;
  color:#344054;
  font-size:0.8125rem;
  line-height:1.55;
}
.ai-teacher-room-page .portal-record-meta{margin-top:9px!important;font-size:0.75rem!important;color:#98a2b3!important;}
.ai-teacher-room-page .ai-feedback-note{display:none!important;}
.ai-feedback-kind-chip{display:inline-flex;margin-left:6px;padding:4px 7px;border-radius:999px;background:#f3f0ff;color:#5b4be8;font-size:0.6875rem;font-weight:950;vertical-align:middle;}
.ai-teacher-room-page .portal-empty{border-radius:18px!important;background:#fbfcff!important;border:1px dashed #d8deea!important;}

@media(max-width:1180px){
  .ai-room-clean-header{align-items:stretch;flex-direction:column;}
  .ai-room-status-wrap{flex:0 0 auto;width:100%;}
  .ai-room-workbench{grid-template-columns:1fr;}
}
@media(max-width:820px){
  .dashboard-ai-teacher-entry{align-items:flex-start;flex-direction:column;}
  .ai-entry-link{width:100%;justify-content:center;text-align:center;}
  .ai-room-clean-header{padding:22px 18px 22px 22px;border-radius:24px;}
  .ai-room-create-card{align-items:flex-start;flex-direction:column;}
  .ai-room-create-card .portal-btn{width:100%;justify-content:center;text-align:center;}
  .ai-room-mini-info{grid-template-columns:1fr;}
  .ai-room-chip-row{justify-content:flex-start;}
}
@media(max-width:560px){
  .dashboard-ai-status-grid{grid-template-columns:1fr;}
  .ai-room-title-block h1{font-size:1.75rem;}
  .ai-room-clean-header::before{top:20px;bottom:20px;width:4px;}
}

/* ai-teacher-room-archive-20260531-v1
   피드백 누적 시 화면이 길어지지 않도록 최신 1건 + 월별 접이식 보관함 구조로 정리 */
.ai-room-results-head.archive-head{align-items:flex-start;}
.ai-room-results-sub{margin:6px 0 0;color:#667085;font-size:0.8125rem;font-weight:720;line-height:1.45;}
.ai-room-results-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.ai-feedback-filter-label{font-size:0;width:1px;height:1px;overflow:hidden;position:absolute;clip:rect(0 0 0 0);}
.ai-feedback-filter-select{
  min-height:36px;
  padding:0 34px 0 12px;
  border:1px solid #d8deea;
  border-radius:12px;
  background:#fff;
  color:#344054;
  font-size:0.75rem;
  font-weight:900;
  outline:none;
}
.ai-feedback-filter-select:focus{border-color:#8f7fff;box-shadow:0 0 0 4px rgba(91,75,232,.10);}
.ai-room-result-list{display:grid;gap:12px!important;}
.ai-feedback-latest-panel,
.ai-feedback-archive-panel{
  border:1px solid #e8edf5;
  border-radius:20px;
  background:#fff;
  padding:14px;
}
.ai-feedback-latest-panel{background:linear-gradient(135deg,#fff 0%,#fbfaff 100%);border-color:#ded8ff;}
.ai-feedback-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:#667085;font-size:0.75rem;font-weight:950;}
.ai-feedback-section-title span{color:#5b4be8;letter-spacing:.02em;}
.ai-feedback-section-title b{color:#98a2b3;font-size:0.75rem;}
.ai-feedback-archive-scroll{
  max-height:440px;
  overflow:auto;
  padding-right:4px;
}
.ai-feedback-month-group{border:1px solid #eef2f7;border-radius:16px;background:#fbfcff;margin-bottom:10px;overflow:hidden;}
.ai-feedback-month-group>summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  color:#344054;
  font-size:0.8125rem;
  font-weight:950;
}
.ai-feedback-month-group>summary::-webkit-details-marker,
.ai-feedback-archive-item>summary::-webkit-details-marker{display:none;}
.ai-feedback-month-group>summary::after{content:'접기';color:#98a2b3;font-size:0.6875rem;font-weight:900;}
.ai-feedback-month-group:not([open])>summary::after{content:'펼치기';}
.ai-feedback-month-group>summary b{margin-left:auto;color:#5b4be8;background:#f3f0ff;border:1px solid #e4ddff;border-radius:999px;padding:3px 8px;font-size:0.6875rem;}
.ai-feedback-month-list{display:grid;gap:8px;padding:0 10px 10px;}
.ai-feedback-archive-item{border:1px solid #e8edf5;border-radius:15px;background:#fff;overflow:hidden;}
.ai-feedback-archive-item>summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 14px;
}
.ai-feedback-archive-item[open]{border-color:#ded8ff;box-shadow:0 8px 18px rgba(91,75,232,.06);}
.ai-feedback-archive-main{min-width:0;display:grid;gap:4px;}
.ai-feedback-archive-title{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#101828;font-size:0.875rem;font-weight:950;letter-spacing:-.025em;}
.ai-feedback-archive-meta{display:block;color:#98a2b3;font-size:0.75rem;font-weight:800;}
.ai-feedback-archive-badges{display:flex;align-items:center;gap:6px;flex:0 0 auto;}
.ai-feedback-archive-body{border-top:1px solid #eef2f7;padding:12px 14px 14px;background:#fbfcff;}
.ai-teacher-room-page .ai-feedback-archive-body .ai-feedback-text{
  max-height:260px;
  overflow:auto;
  padding:12px 14px;
  border-radius:14px;
  background:#fff;
  border:1px solid #eef2f7;
  color:#344054;
  font-size:0.8125rem;
  line-height:1.6;
}
.ai-feedback-latest-panel .ai-feedback-archive-item>summary{padding:15px 16px;}
.ai-feedback-latest-panel .ai-feedback-archive-title{font-size:1rem;}
.portal-empty.compact{padding:18px!important;min-height:auto!important;}
@media(max-width:720px){
  .ai-room-results-head.archive-head{flex-direction:column;}
  .ai-room-results-controls{width:100%;justify-content:flex-start;}
  .ai-feedback-filter-select{width:100%;}
  .ai-feedback-archive-item>summary{align-items:flex-start;flex-direction:column;}
  .ai-feedback-archive-badges{width:100%;justify-content:flex-start;}
  .ai-feedback-archive-scroll{max-height:380px;}
}

/* ai-teacher-learning-report-20260531-v1
   AI 피드백방에 학생 학습 기록과 시각 자료를 함께 배치하되, 결과 보관함과 분리해 누적 피드백이 복잡해 보이지 않도록 정리 */
.ai-room-learning-report{
  padding:20px;
  border:1px solid #e3e8f1;
  border-radius:24px;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.035);
}
.ai-room-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.ai-room-section-head h2{
  margin:0;
  color:#101828;
  font-size:1.375rem;
  font-weight:950;
  letter-spacing:-.04em;
}
.ai-room-section-head .portal-label{margin:0 0 5px;}
.ai-room-section-head p:not(.portal-label){
  margin:6px 0 0;
  color:#667085;
  font-size:0.8125rem;
  font-weight:720;
  line-height:1.45;
}
.ai-learning-brief{
  margin-bottom:12px;
  padding:13px 15px;
  border:1px solid #eef2f7;
  border-radius:16px;
  background:linear-gradient(135deg,#fbfcff 0%,#fff 100%);
  color:#344054;
  font-size:0.8125rem;
  font-weight:850;
  line-height:1.45;
}
.ai-learning-stat-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:9px;
  margin-bottom:14px;
}
.ai-learning-stat{
  min-width:0;
  padding:13px 12px;
  border:1px solid #e8edf5;
  border-radius:16px;
  background:#fbfcff;
}
.ai-learning-stat span{
  display:block;
  color:#667085;
  font-size:0.6875rem;
  font-weight:950;
  line-height:1.15;
  white-space:nowrap;
}
.ai-learning-stat b{
  display:block;
  margin-top:6px;
  color:#101828;
  font-size:1.25rem;
  font-weight:980;
  letter-spacing:-.045em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ai-learning-stat small{
  display:block;
  margin-top:4px;
  color:#98a2b3;
  font-size:0.6875rem;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ai-learning-stat.good{background:#f5fffb;border-color:#c8f3df;}
.ai-learning-stat.warn{background:#fffaf0;border-color:#f7dfaa;}
.ai-learning-stat.bad{background:#fff7f7;border-color:#ffd2d2;}
.ai-learning-chart-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.ai-learning-chart-card{
  min-width:0;
  padding:16px;
  border:1px solid #e8edf5;
  border-radius:20px;
  background:#fbfcff;
}
.ai-chart-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.ai-chart-head strong{
  display:block;
  color:#101828;
  font-size:0.875rem;
  font-weight:950;
  letter-spacing:-.025em;
}
.ai-chart-head span{
  display:block;
  margin-top:4px;
  color:#98a2b3;
  font-size:0.6875rem;
  font-weight:850;
}
.ai-week-chart{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
  min-height:170px;
  align-items:end;
}
.ai-week-bar{
  min-width:0;
  display:grid;
  grid-template-rows:22px 1fr 34px;
  gap:6px;
  align-items:end;
  text-align:center;
}
.ai-week-value{
  color:#98a2b3;
  font-size:0.625rem;
  font-weight:900;
  white-space:nowrap;
}
.ai-week-track{
  height:105px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0 3px;
  border-radius:999px;
  background:#eef2f7;
  overflow:hidden;
}
.ai-week-fill{
  width:100%;
  min-height:5px;
  border-radius:999px 999px 0 0;
  background:#d5d9e6;
  transition:height .2s ease;
}
.ai-week-bar.active .ai-week-fill{background:linear-gradient(180deg,#9b87ff,#5b4be8);}
.ai-week-bar.today .ai-week-track{box-shadow:0 0 0 3px rgba(91,75,232,.10);}
.ai-week-label{
  color:#667085;
  font-size:0.6875rem;
  font-weight:950;
  line-height:1.15;
}
.ai-week-label small{
  display:block;
  margin-top:3px;
  color:#98a2b3;
  font-size:0.625rem;
  font-weight:800;
}
.ai-accuracy-chart{min-height:170px;}
.ai-trend-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.ai-trend-top b{
  color:#101828;
  font-size:1.375rem;
  font-weight:980;
  letter-spacing:-.045em;
}
.ai-trend-top span{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  font-size:0.6875rem;
  font-weight:950;
  background:#f7f8fc;
  color:#667085;
}
.ai-trend-top span.good{background:#ecfdf3;color:#047857;}
.ai-trend-top span.bad{background:#fff1f2;color:#be123c;}
.ai-trend-svg{
  width:100%;
  height:138px;
  display:block;
}
.ai-trend-svg line{stroke:#e8edf5;stroke-width:2;}
.ai-trend-svg polyline{stroke:#5b4be8;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
.ai-trend-svg circle{fill:#fff;stroke:#5b4be8;stroke-width:3;}
.ai-trend-svg circle.outlier{stroke:#f43f5e;stroke-dasharray:2 2;stroke-width:2;}
.ai-trend-outlier-note{color:#be123c;font-weight:800;}
.ai-trend-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#98a2b3;
  font-size:0.6875rem;
  font-weight:850;
}
.ai-error-total{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.ai-error-total b{
  color:#101828;
  font-size:1.375rem;
  font-weight:980;
  letter-spacing:-.045em;
}
.ai-error-total span{
  color:#98a2b3;
  font-size:0.6875rem;
  font-weight:850;
}
.ai-error-bar-list{display:grid;gap:11px;}
.ai-error-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
  color:#344054;
  font-size:0.75rem;
  font-weight:950;
}
.ai-error-label b{color:#98a2b3;font-size:0.6875rem;font-weight:900;}
.ai-error-track{
  height:10px;
  border-radius:999px;
  background:#eef2f7;
  overflow:hidden;
}
.ai-error-fill{
  height:100%;
  border-radius:999px;
  background:#9b87ff;
}
.ai-error-fill.wrong{background:#5b4be8;}
.ai-error-fill.missing{background:#f59e0b;}
.ai-error-fill.added{background:#ef4444;}
.ai-error-fill.spacing{background:#64748b;}
.ai-learning-weakpoint{
  min-height:154px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:16px;
  border-radius:16px;
  background:#fff;
  border:1px solid #eef2f7;
}
.ai-weak-tag{
  align-self:flex-start;
  margin-bottom:10px;
  padding:5px 9px;
  border-radius:999px;
  background:#f3f0ff;
  color:#5b4be8;
  font-size:0.6875rem;
  font-weight:950;
}
.ai-learning-weakpoint strong{
  color:#101828;
  font-size:1.125rem;
  font-weight:950;
  letter-spacing:-.035em;
}
.ai-learning-weakpoint p{
  margin:8px 0 0;
  color:#667085;
  font-size:0.8125rem;
  font-weight:720;
  line-height:1.55;
}
.ai-weak-meta{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #eef2f7;
  color:#98a2b3;
  font-size:0.75rem;
  font-weight:850;
  line-height:1.55;
}
@media(max-width:1180px){
  .ai-learning-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
  .ai-learning-chart-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .ai-room-section-head{flex-direction:column;}
  .ai-learning-stat-grid{grid-template-columns:1fr 1fr;}
  .ai-room-learning-report{padding:16px;border-radius:22px;}
}
@media(max-width:420px){
  .ai-learning-stat-grid{grid-template-columns:1fr;}
  .ai-week-chart{gap:4px;}
}

/* ai-teacher-coaching-board-20260531-v1
   추천 기능을 전부 펼쳐놓지 않고 점수판 + 처방전 + 추천 액션으로 압축 배치 */
.ai-room-coaching-board{
  padding:20px;
  border:1px solid #e3e8f1;
  border-radius:24px;
  background:linear-gradient(135deg,#fff 0%,#fbfcff 100%);
  box-shadow:0 8px 24px rgba(15,23,42,.035);
}
.ai-coaching-head{margin-bottom:14px!important;}
.ai-coaching-score-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-bottom:14px;
}
.ai-coaching-score-card{
  min-width:0;
  display:flex;
  align-items:center;
  gap:11px;
  padding:13px 12px;
  border:1px solid #e8edf5;
  border-radius:17px;
  background:#fff;
}
.ai-coaching-score-icon{
  flex:0 0 auto;
  width:38px;
  height:38px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f3f0ff;
  color:#5b4be8;
  font-size:1.125rem;
  font-weight:950;
}
.ai-coaching-score-main{min-width:0;}
.ai-coaching-score-main span{
  display:block;
  color:#667085;
  font-size:0.6875rem;
  font-weight:950;
  white-space:nowrap;
}
.ai-coaching-score-main b{
  display:block;
  margin-top:4px;
  color:#101828;
  font-size:1.3125rem;
  font-weight:980;
  letter-spacing:-.05em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ai-coaching-score-main small{
  display:block;
  margin-top:3px;
  color:#98a2b3;
  font-size:0.6875rem;
  font-weight:820;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ai-coaching-score-card.good{background:#f5fffb;border-color:#c8f3df;}
.ai-coaching-score-card.good .ai-coaching-score-icon{background:#ecfdf3;color:#047857;}
.ai-coaching-score-card.warn{background:#fffaf0;border-color:#f7dfaa;}
.ai-coaching-score-card.warn .ai-coaching-score-icon{background:#fff7ed;color:#c2410c;}
.ai-coaching-score-card.bad{background:#fff7f7;border-color:#ffd2d2;}
.ai-coaching-score-card.bad .ai-coaching-score-icon{background:#fff1f2;color:#be123c;}
.ai-coaching-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:12px;
}
.ai-coaching-card{
  min-width:0;
  padding:16px;
  border:1px solid #e8edf5;
  border-radius:20px;
  background:#fbfcff;
}
.ai-prescription-lead{
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:13px 14px;
  border:1px solid #e9e4ff;
  border-radius:16px;
  background:#fff;
  margin-bottom:10px;
}
.ai-prescription-mark{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f3f0ff;
  color:#5b4be8;
  font-size:1rem;
  font-weight:950;
}
.ai-prescription-lead strong{
  display:block;
  color:#101828;
  font-size:0.9375rem;
  font-weight:950;
  letter-spacing:-.025em;
}
.ai-prescription-lead p{
  margin:4px 0 0;
  color:#667085;
  font-size:0.75rem;
  font-weight:760;
  line-height:1.5;
}
.ai-prescription-list{display:grid;gap:7px;margin:0;padding:0;list-style:none;}
.ai-prescription-list li{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:10px 11px;
  border:1px solid #eef2f7;
  border-radius:14px;
  background:#fff;
  color:#344054;
  font-size:0.75rem;
  font-weight:760;
  line-height:1.45;
}
.ai-prescription-list li b{
  flex:0 0 auto;
  min-width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#f7f8fc;
  color:#5b4be8;
  font-size:0.625rem;
  font-weight:950;
}
.ai-action-stack{display:grid;gap:8px;}
.ai-action-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  padding:12px 13px;
  border:1px solid #eef2f7;
  border-radius:15px;
  background:#fff;
}
.ai-action-item strong{
  display:block;
  color:#101828;
  font-size:0.8125rem;
  font-weight:950;
  letter-spacing:-.02em;
}
.ai-action-item p{
  margin:3px 0 0;
  color:#667085;
  font-size:0.75rem;
  font-weight:740;
  line-height:1.45;
}
.ai-action-item .portal-badge{white-space:nowrap;}
.ai-action-item a{
  color:#5b4be8;
  font-size:0.75rem;
  font-weight:950;
  text-decoration:none;
  white-space:nowrap;
}
.ai-action-item a:hover{text-decoration:underline;}
@media(max-width:1180px){
  .ai-coaching-score-strip{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ai-coaching-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .ai-room-coaching-board{padding:16px;border-radius:22px;}
  .ai-coaching-score-strip{grid-template-columns:1fr;}
  .ai-action-item{grid-template-columns:1fr;}
}


/* ai-teacher-motion-polish-20260531-v1
   기존 흰색 카드 톤은 유지하고, 마우스 오버 시 가볍게 떠오르는 대시보드형 인터랙션만 추가 */
:root{
  --ai-motion-ease: cubic-bezier(.22,1.25,.36,1);
  --ai-motion-fast: .18s;
  --ai-motion-base: .28s;
  --ai-motion-slow: .45s;
}

.ai-teacher-room-page :where(
  .ai-room-clean-header,
  .ai-room-create-card,
  .ai-room-learning-report,
  .ai-learning-stat,
  .ai-learning-chart-card,
  .ai-room-coaching-board,
  .ai-coaching-score-card,
  .ai-coaching-card,
  .ai-prescription-lead,
  .ai-prescription-list li,
  .ai-action-item,
  .ai-feedback-latest-panel,
  .ai-feedback-archive-panel,
  .ai-feedback-month-group,
  .ai-feedback-archive-item,
  .portal-feedback-card,
  .ai-learning-weakpoint
){
  transition:
    transform var(--ai-motion-base) var(--ai-motion-ease),
    box-shadow var(--ai-motion-base) ease,
    border-color var(--ai-motion-base) ease,
    background var(--ai-motion-base) ease,
    opacity var(--ai-motion-base) ease;
  will-change: transform;
}

.ai-teacher-room-page :where(
  .ai-room-clean-header,
  .ai-room-learning-report,
  .ai-room-coaching-board,
  .ai-room-results-card
):hover{
  transform:translateY(-3px);
  box-shadow:0 16px 42px rgba(15,23,42,.07)!important;
  border-color:#d9d2ff!important;
}

.ai-teacher-room-page :where(
  .ai-room-create-card,
  .ai-learning-chart-card,
  .ai-coaching-card,
  .ai-feedback-latest-panel,
  .ai-feedback-archive-panel
):hover{
  transform:translateY(-4px) scale(1.006);
  box-shadow:0 14px 34px rgba(91,75,232,.08)!important;
  border-color:#dcd5ff!important;
}

.ai-teacher-room-page :where(
  .ai-learning-stat,
  .ai-coaching-score-card,
  .ai-action-item,
  .ai-prescription-list li,
  .ai-prescription-lead,
  .ai-feedback-month-group,
  .ai-feedback-archive-item,
  .portal-feedback-card
):hover{
  transform:translateY(-3px);
  box-shadow:0 10px 24px rgba(15,23,42,.06)!important;
  border-color:#e1dcff!important;
}

.ai-teacher-room-page .ai-coaching-score-card:hover .ai-coaching-score-icon,
.ai-teacher-room-page .ai-prescription-lead:hover .ai-prescription-mark,
.ai-teacher-room-page .ai-entry-icon:hover,
.ai-teacher-room-page .ai-weak-tag:hover{
  animation:aiSoftBounce .42s var(--ai-motion-ease);
}

.ai-teacher-room-page :where(.portal-btn,.ai-entry-link,.ai-action-item a){
  transition:
    transform var(--ai-motion-fast) var(--ai-motion-ease),
    box-shadow var(--ai-motion-fast) ease,
    filter var(--ai-motion-fast) ease,
    background var(--ai-motion-fast) ease;
  will-change:transform;
}
.ai-teacher-room-page :where(.portal-btn,.ai-entry-link):hover{
  transform:translateY(-2px) scale(1.015);
  box-shadow:0 10px 22px rgba(91,75,232,.16)!important;
  filter:saturate(1.05);
}
.ai-teacher-room-page :where(.portal-btn,.ai-entry-link):active{
  transform:translateY(0) scale(.985);
}
.ai-teacher-room-page .ai-action-item a:hover{
  transform:translateX(3px);
}

.ai-room-chip-row span,
.portal-chip,
.ai-feedback-kind-chip,
.ai-feedback-month-group>summary b,
.ai-trend-top span{
  transition:
    transform var(--ai-motion-fast) var(--ai-motion-ease),
    box-shadow var(--ai-motion-fast) ease,
    background var(--ai-motion-fast) ease,
    color var(--ai-motion-fast) ease;
}
.ai-room-chip-row span:hover,
.portal-chip:hover,
.ai-feedback-kind-chip:hover,
.ai-feedback-month-group>summary b:hover,
.ai-trend-top span:hover{
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 8px 18px rgba(91,75,232,.10);
  background:#f3f0ff;
  color:#5b4be8;
}

.dashboard-ai-status-grid>div,
.ai-week-track,
.ai-error-track,
.ai-learning-weakpoint{
  transition:
    transform var(--ai-motion-base) var(--ai-motion-ease),
    box-shadow var(--ai-motion-base) ease,
    border-color var(--ai-motion-base) ease;
}
.dashboard-ai-status-grid>div:hover{
  transform:translateY(-3px) scale(1.015);
  box-shadow:0 12px 24px rgba(91,75,232,.08);
  border-color:#ded8ff;
}

.ai-week-bar:hover .ai-week-track{
  transform:translateY(-3px) scaleY(1.03);
  box-shadow:0 10px 18px rgba(91,75,232,.10);
}
.ai-week-bar:hover .ai-week-fill{
  filter:saturate(1.18);
}
.ai-error-bar-list:hover .ai-error-fill,
.ai-week-chart:hover .ai-week-fill{
  animation:aiBarPulse .7s ease;
}
.ai-trend-svg polyline{
  stroke-dasharray:800;
  stroke-dashoffset:800;
  animation:aiLineDraw 1.1s ease forwards;
}
.ai-trend-svg circle{
  transform-box:fill-box;
  transform-origin:center;
  animation:aiDotPop .5s var(--ai-motion-ease) both;
}
.ai-trend-svg circle:nth-of-type(2){animation-delay:.05s;}
.ai-trend-svg circle:nth-of-type(3){animation-delay:.1s;}
.ai-trend-svg circle:nth-of-type(4){animation-delay:.15s;}
.ai-trend-svg circle:nth-of-type(5){animation-delay:.2s;}
.ai-trend-svg circle:nth-of-type(6){animation-delay:.25s;}
.ai-trend-svg circle:nth-of-type(7){animation-delay:.3s;}
.ai-trend-svg circle:nth-of-type(8){animation-delay:.35s;}
.ai-trend-svg circle:nth-of-type(9){animation-delay:.4s;}
.ai-trend-svg circle:nth-of-type(10){animation-delay:.45s;}
.ai-trend-svg:hover circle{
  animation:aiDotWobble .5s var(--ai-motion-ease);
}

.ai-nav-highlight{
  transition:
    transform var(--ai-motion-base) var(--ai-motion-ease),
    background var(--ai-motion-base) ease,
    border-color var(--ai-motion-base) ease;
}
.ai-nav-highlight:hover{
  transform:translateX(3px);
  border-color:#ded8ff;
  background:linear-gradient(90deg,rgba(91,75,232,.12),rgba(255,255,255,0));
}
.ai-nav-highlight::after{
  animation:aiBadgePulse 2.6s ease-in-out infinite;
}

.ai-room-clean-header::after,
.ai-room-learning-report::after,
.ai-room-coaching-board::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.55) 44%,transparent 60%);
  transform:translateX(-120%);
}
.ai-room-clean-header,
.ai-room-learning-report,
.ai-room-coaching-board{position:relative;overflow:hidden;}
.ai-room-clean-header:hover::after,
.ai-room-learning-report:hover::after,
.ai-room-coaching-board:hover::after{
  opacity:1;
  animation:aiCardShine .75s ease;
}

.ai-teacher-room-page .ai-room-clean-header,
.ai-teacher-room-page .ai-room-workbench,
.ai-teacher-room-page .ai-room-learning-report,
.ai-teacher-room-page .ai-room-coaching-board,
.ai-teacher-room-page .ai-room-mini-info,
.ai-teacher-room-page .ai-room-results-card{
  animation:aiRiseIn .5s var(--ai-motion-ease) both;
}
.ai-teacher-room-page .ai-room-workbench{animation-delay:.04s;}
.ai-teacher-room-page .ai-room-learning-report{animation-delay:.08s;}
.ai-teacher-room-page .ai-room-coaching-board{animation-delay:.12s;}
.ai-teacher-room-page .ai-room-mini-info{animation-delay:.16s;}
.ai-teacher-room-page .ai-room-results-card{animation-delay:.20s;}

.ai-teacher-room-page .ai-learning-stat,
.ai-teacher-room-page .ai-coaching-score-card{
  animation:aiMiniPop .38s var(--ai-motion-ease) both;
}
.ai-teacher-room-page .ai-learning-stat:nth-child(2),
.ai-teacher-room-page .ai-coaching-score-card:nth-child(2){animation-delay:.04s;}
.ai-teacher-room-page .ai-learning-stat:nth-child(3),
.ai-teacher-room-page .ai-coaching-score-card:nth-child(3){animation-delay:.08s;}
.ai-teacher-room-page .ai-learning-stat:nth-child(4),
.ai-teacher-room-page .ai-coaching-score-card:nth-child(4){animation-delay:.12s;}
.ai-teacher-room-page .ai-learning-stat:nth-child(5){animation-delay:.16s;}
.ai-teacher-room-page .ai-learning-stat:nth-child(6){animation-delay:.20s;}

.ai-feedback-month-group>summary,
.ai-feedback-archive-item>summary{
  transition:background var(--ai-motion-fast) ease, color var(--ai-motion-fast) ease;
}
.ai-feedback-month-group>summary:hover,
.ai-feedback-archive-item>summary:hover{
  background:#fff;
  color:#5b4be8;
}

@keyframes aiRiseIn{
  from{opacity:0;transform:translateY(10px) scale(.992);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
@keyframes aiMiniPop{
  from{opacity:0;transform:translateY(8px) scale(.96);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
@keyframes aiSoftBounce{
  0%{transform:translateY(0) scale(1);}
  38%{transform:translateY(-5px) scale(1.08);}
  70%{transform:translateY(1px) scale(.98);}
  100%{transform:translateY(0) scale(1);}
}
@keyframes aiBadgePulse{
  0%,100%{box-shadow:0 0 0 0 rgba(91,75,232,.16);transform:scale(1);}
  50%{box-shadow:0 0 0 5px rgba(91,75,232,0);transform:scale(1.04);}
}
@keyframes aiCardShine{
  0%{transform:translateX(-120%);opacity:0;}
  30%{opacity:.8;}
  100%{transform:translateX(120%);opacity:0;}
}
@keyframes aiBarPulse{
  0%,100%{transform:scaleY(1);}
  50%{transform:scaleY(1.08);}
}
@keyframes aiLineDraw{
  to{stroke-dashoffset:0;}
}
@keyframes aiDotPop{
  from{opacity:0;transform:scale(.35);}
  to{opacity:1;transform:scale(1);}
}
@keyframes aiDotWobble{
  0%,100%{transform:scale(1);}
  45%{transform:scale(1.28);}
  70%{transform:scale(.92);}
}

@media (hover:none){
  .ai-teacher-room-page :where(
    .ai-room-clean-header,
    .ai-room-create-card,
    .ai-room-learning-report,
    .ai-learning-stat,
    .ai-learning-chart-card,
    .ai-room-coaching-board,
    .ai-coaching-score-card,
    .ai-coaching-card,
    .ai-prescription-lead,
    .ai-prescription-list li,
    .ai-action-item,
    .ai-feedback-latest-panel,
    .ai-feedback-archive-panel,
    .ai-feedback-month-group,
    .ai-feedback-archive-item,
    .portal-feedback-card,
    .ai-learning-weakpoint
  ):hover{
    transform:none;
    box-shadow:inherit!important;
  }
}

@media (prefers-reduced-motion: reduce){
  .ai-teacher-room-page *,
  .ai-nav-highlight,
  .ai-nav-highlight::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}


/* ai-teacher-section-focus-20260531-v2
   각 영역이 옹기종기 붙어 보이지 않도록, 마우스를 올린 파트만 또렷하게 떠오르고 주변 영역은 살짝 물러나는 구분형 인터랙션 */
:root{
  --ai-section-focus-ring: rgba(91,75,232,.34);
  --ai-section-focus-bg: linear-gradient(135deg,#fff 0%,#fbfaff 55%,#f7f5ff 100%);
  --ai-section-dim-opacity: .48;
}

.ai-teacher-room-page{
  perspective:1200px;
}
.ai-teacher-room-page .ai-focus-section{
  position:relative;
  transform-origin:center top;
  transition:
    transform .34s cubic-bezier(.2,1.32,.28,1),
    box-shadow .34s ease,
    border-color .34s ease,
    background .34s ease,
    opacity .24s ease,
    filter .24s ease;
}
.ai-teacher-room-page .ai-focus-section::selection{
  background:rgba(91,75,232,.18);
}

@media (hover:hover){
  .ai-teacher-room-page:has(.ai-focus-section:hover) > .ai-focus-section:not(:hover){
    opacity:var(--ai-section-dim-opacity);
    filter:saturate(.78) contrast(.96);
    transform:scale(.988);
  }
  .ai-teacher-room-page > .ai-focus-section:hover{
    opacity:1;
    filter:saturate(1.04) contrast(1);
    transform:translateY(-8px) scale(1.008);
    z-index:20;
    border-color:#beb3ff!important;
    box-shadow:
      0 24px 60px rgba(91,75,232,.15),
      0 8px 22px rgba(15,23,42,.08),
      0 0 0 5px rgba(91,75,232,.075)!important;
  }
  .ai-teacher-room-page > .ai-focus-section:hover::before{
    filter:saturate(1.25);
  }
  .ai-teacher-room-page > .ai-focus-section:hover .ai-room-section-head h2,
  .ai-teacher-room-page > .ai-focus-section:hover .ai-room-results-head h2,
  .ai-teacher-room-page > .ai-focus-section:hover .ai-room-title-block h1{
    color:#3f33c7;
    text-shadow:0 10px 24px rgba(91,75,232,.10);
  }
  .ai-teacher-room-page > .ai-focus-section:hover .portal-label,
  .ai-teacher-room-page > .ai-focus-section:hover .portal-kicker{
    color:#4f46e5!important;
  }
  .ai-room-workbench.ai-focus-section{
    padding:2px;
    border:1px solid transparent;
    border-radius:28px;
  }
  .ai-room-workbench.ai-focus-section:hover{
    background:rgba(91,75,232,.045);
  }
  .ai-room-mini-info.ai-focus-section:hover{
    background:linear-gradient(135deg,#fff 0%,#faf8ff 100%);
  }
  .ai-room-results-card.ai-focus-section:hover{
    background:var(--ai-section-focus-bg)!important;
  }

  /* 한 섹션 안에서도 현재 보고 있는 카드만 분리되도록 주변 요소를 후퇴 */
  .ai-room-workbench:has(.ai-room-create-card:hover) .ai-room-create-card:not(:hover),
  .ai-learning-stat-grid:has(.ai-learning-stat:hover) .ai-learning-stat:not(:hover),
  .ai-learning-chart-grid:has(.ai-learning-chart-card:hover) .ai-learning-chart-card:not(:hover),
  .ai-coaching-score-strip:has(.ai-coaching-score-card:hover) .ai-coaching-score-card:not(:hover),
  .ai-coaching-grid:has(.ai-coaching-card:hover) .ai-coaching-card:not(:hover),
  .ai-action-stack:has(.ai-action-item:hover) .ai-action-item:not(:hover),
  .ai-prescription-list:has(li:hover) li:not(:hover),
  .ai-feedback-month-list:has(.ai-feedback-archive-item:hover) .ai-feedback-archive-item:not(:hover){
    opacity:.42;
    filter:saturate(.70);
    transform:scale(.976);
  }

  .ai-room-workbench .ai-room-create-card:hover,
  .ai-learning-stat-grid .ai-learning-stat:hover,
  .ai-learning-chart-grid .ai-learning-chart-card:hover,
  .ai-coaching-score-strip .ai-coaching-score-card:hover,
  .ai-coaching-grid .ai-coaching-card:hover,
  .ai-action-stack .ai-action-item:hover,
  .ai-prescription-list li:hover,
  .ai-feedback-month-list .ai-feedback-archive-item:hover{
    opacity:1;
    filter:saturate(1.08);
    transform:translateY(-7px) scale(1.025);
    z-index:12;
    border-color:#b7abff!important;
    box-shadow:
      0 18px 40px rgba(91,75,232,.16),
      0 0 0 4px rgba(91,75,232,.065)!important;
  }

  .ai-learning-chart-card:hover .ai-chart-head strong,
  .ai-coaching-card:hover .ai-chart-head strong,
  .ai-action-item:hover strong,
  .ai-prescription-list li:hover{
    color:#3f33c7;
  }

  /* 카드 구분을 위한 부드러운 좌측 포커스 바 */
  .ai-learning-chart-card,
  .ai-coaching-card,
  .ai-room-create-card,
  .ai-action-item,
  .ai-prescription-list li,
  .ai-feedback-archive-item,
  .ai-learning-stat,
  .ai-coaching-score-card{
    position:relative;
    overflow:hidden;
  }
  .ai-learning-chart-card::before,
  .ai-coaching-card::before,
  .ai-room-create-card::before,
  .ai-action-item::before,
  .ai-prescription-list li::before,
  .ai-feedback-archive-item::before,
  .ai-learning-stat::before,
  .ai-coaching-score-card::before{
    content:"";
    position:absolute;
    left:0;
    top:12px;
    bottom:12px;
    width:0;
    border-radius:0 999px 999px 0;
    background:linear-gradient(180deg,#5b4be8,#9b87ff);
    opacity:0;
    transition:width .22s ease, opacity .22s ease;
  }
  .ai-learning-chart-card:hover::before,
  .ai-coaching-card:hover::before,
  .ai-room-create-card:hover::before,
  .ai-action-item:hover::before,
  .ai-prescription-list li:hover::before,
  .ai-feedback-archive-item:hover::before,
  .ai-learning-stat:hover::before,
  .ai-coaching-score-card:hover::before{
    width:5px;
    opacity:1;
  }

  /* 그래프와 지표는 hover된 카드 안에서만 더 크게 반응 */
  .ai-learning-chart-card:hover .ai-week-track,
  .ai-learning-chart-card:hover .ai-error-track,
  .ai-learning-chart-card:hover .ai-trend-svg,
  .ai-coaching-score-card:hover .ai-coaching-score-icon{
    transform:translateY(-2px) scale(1.025);
  }
  .ai-learning-chart-card:hover .ai-week-fill,
  .ai-learning-chart-card:hover .ai-error-fill{
    animation:aiFocusBarPop .58s cubic-bezier(.22,1.25,.36,1);
  }
  .ai-room-chip-row:has(span:hover) span:not(:hover){
    opacity:.42;
    transform:scale(.96);
  }
  .ai-room-chip-row span:hover{
    transform:translateY(-4px) scale(1.08);
    border-color:#c9c1ff;
  }
}

@keyframes aiFocusBarPop{
  0%{transform:scaleY(1);filter:saturate(1);}
  45%{transform:scaleY(1.16);filter:saturate(1.25);}
  100%{transform:scaleY(1);filter:saturate(1.08);}
}

@media (hover:none){
  .ai-teacher-room-page .ai-focus-section:active{
    transform:scale(.995);
  }
}

@media (prefers-reduced-motion: reduce){
  .ai-teacher-room-page:has(.ai-focus-section:hover) > .ai-focus-section:not(:hover){
    opacity:1!important;
    filter:none!important;
    transform:none!important;
  }
}
