/* =====================================================
   MOBILE
===================================================== */

@media(max-width:900px){

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

  .important-grid,
  .file-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .filter-bar{
    align-items:stretch;
    flex-direction:column;
  }

  .search-wrap{
    width:100%;
    flex:auto;
  }
}

@media(max-width:640px){

  .wrap,
  .header-inner{
    width:min(100% - 28px,1180px);
  }

  .header-inner{
    height:68px;
  }

  .school-logo{
    width:38px;
    height:38px;
  }

  .school-name{
    font-size:0.875rem;
  }

  .school-name-en{
    display:none;
  }

  .header-time{
    font-size:0.625rem;
  }

  main{
    padding-top:22px;
  }

  .system-grid{
    gap:7px;
  }

  .system-card{
    height:86px;
    padding:13px;
    gap:10px;
  }

  .system-icon{
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .system-desc{
    display:none;
  }

  .resource-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .resource-actions{
    width:100%;
  }

  .resource-actions .btn{
    flex:1;
  }

  .important-grid,
  .file-grid{
    grid-template-columns:1fr;
  }

  .footer{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* TYPOGRAPHY REFINEMENT */
body{font-size:0.9375rem}.calendar-title h1,.section-head h1{font-size:1.5625rem}.calendar-weekday{font-size:0.75rem;font-weight:700}.calendar-date{font-size:0.75rem;font-weight:700}.cal-chip{font-size:0.75rem;font-weight:650}.calendar-event{font-size:0.6875rem;font-weight:600}.today-tab{font-size:0.8125rem;font-weight:700}.today-date{font-size:0.875rem;font-weight:700}.today-cat{font-size:0.625rem;font-weight:700}.today-name{font-size:0.8125rem;font-weight:600}.today-meta{font-size:0.6875rem}.card-title{font-size:0.875rem;font-weight:650}.card-desc{font-size:0.75rem}.card-meta{font-size:0.6875rem;font-weight:500}.category-title{font-size:1rem;font-weight:700}.search input{font-size:0.8125rem}.btn{font-size:0.75rem;font-weight:600}.modal-header h3{font-weight:700}.event-detail-label{font-size:0.6875rem;font-weight:650}.event-detail-value{font-size:0.875rem;font-weight:400}

/* SHARED RESOURCE TYPOGRAPHY */
.category .card-title{font-weight:500}
.category .card-desc{font-weight:400}
.category .card-meta{font-weight:400}


/* Shared-resource item names: reduce heavy bold */
.resource-card .card-title,
.resource-item .card-title,
#resourceGrid .card-title,
#resources .card-title,
.card .card-title {
  font-weight: 500 !important;
}

/* Shared-resource item names: regular weight */
.resource-card .card-title,
.resource-item .card-title,
#resourceGrid .card-title,
#resources .card-title,
.card .card-title {
  font-weight: 400 !important;
}

/* Shared-resource item names: larger, but not bold */
.resource-card .card-title,
.resource-item .card-title,
#resourceGrid .card-title,
#resources .card-title,
.card .card-title {
  font-size:1.0625rem !important;
  font-weight: 400 !important;
  line-height: 1.4;
}

/* GLOBAL CONTENT TEXT UPSIZE: about two visual steps */
.calendar-weekday { font-size:0.875rem !important; }
.calendar-date { font-size:0.875rem !important; }
.cal-chip { font-size:0.875rem !important; }
.calendar-event { font-size:0.8125rem !important; line-height: 1.35; }

.today-tab { font-size:0.9375rem !important; }
.today-date { font-size:1rem !important; }
.today-cat { font-size:0.75rem !important; }
.today-name { font-size:0.9375rem !important; }
.today-meta { font-size:0.8125rem !important; }

.resource-card .card-title,
.resource-item .card-title,
#resourceGrid .card-title,
#resources .card-title,
.card .card-title {
  font-size:1.0625rem !important;
  font-weight: 400 !important;
  line-height: 1.4;
}
.card-desc { font-size:0.875rem !important; }
.card-meta { font-size:0.8125rem !important; }
.category-title { font-size:1.125rem !important; }
.search input { font-size:0.9375rem !important; }
.btn { font-size:0.875rem !important; }

.event-detail-label { font-size:0.8125rem !important; }
.event-detail-value { font-size:1rem !important; }


/* PORTAL TYPOGRAPHY V2 — readability pass */
body { font-size:1rem; }
.school-name { font-size:1.125rem; }
.header-time { font-size:0.8125rem; }
.system-name { font-size:1rem; }
.system-desc { font-size:0.75rem; }
.resource-title h1, .calendar-title h1 { font-size:1.625rem; }
.resource-title p, .calendar-title p { font-size:0.875rem; }
.btn { font-size:0.8125rem !important; }
.chip { font-size:0.8125rem; }
.search { font-size:0.875rem; }
.status, .calendar-status { font-size:0.75rem; }
.important-title { font-size:1rem; }
.important-desc { font-size:0.75rem; }
.important-category { font-size:0.6875rem; }
.important-card-title { font-size:0.9375rem; }
.important-card-desc { font-size:0.8125rem; }
.important-meta { font-size:0.75rem; }
.category-head h2 { font-size:1.1875rem; }
.category-count { font-size:0.75rem; }
.file-title { font-size:1rem; line-height: 1.45; }
.file-desc { font-size:0.8125rem; line-height: 1.55; }
.file-meta { font-size:0.75rem; line-height: 1.45; }
.calendar-weekday { font-size:0.875rem !important; }
.calendar-date { font-size:0.875rem !important; }
.cal-chip { font-size:0.8125rem !important; }
.calendar-event { font-size:0.8125rem !important; }
.today-tab { font-size:0.875rem !important; }
.today-date { font-size:1rem !important; }
.today-cat { font-size:0.75rem !important; }
.today-name { font-size:0.9375rem !important; }
.today-meta { font-size:0.75rem !important; }
.event-detail-label { font-size:0.75rem !important; }
.event-detail-value { font-size:0.9375rem !important; }
.footer { font-size:0.75rem; }


/* =====================================================
   TYPOGRAPHY V3 — weight hierarchy
   큰 제목만 강하게, 실제 콘텐츠는 가볍게
===================================================== */

/* 브랜드/최상위 제목: 확실한 기준점 */
.school-name,
.resource-title h1,
.calendar-title h1,
.enrollment-title,
.enrollment-label {
  font-weight: 700 !important;
}

/* 업무 시스템/카테고리 제목: 중간 강조 */
.system-name,
.category-head h2,
.important-title,
.today-date,
.today-tab {
  font-weight: 650 !important;
}

/* 카테고리 필터와 버튼: 조작 요소라 적당히 강조 */
.chip,
.cal-chip,
.btn {
  font-weight: 600 !important;
}

/* 핵심 수정: 공유 업무자료 파일 제목은 세미볼드 이하 */
.file-title,
.important-card-title,
.card-title,
.resource-card .card-title,
.resource-item .card-title,
#resourceGrid .card-title,
#resources .card-title,
.card .card-title {
  font-weight: 550 !important;
}

/* 일정 제목도 너무 무겁지 않게 */
.calendar-event,
.today-name {
  font-weight: 550 !important;
}

/* 설명/보조정보는 읽기 편한 일반 굵기 */
.file-desc,
.important-card-desc,
.system-desc,
.resource-title p,
.calendar-title p,
.important-desc,
.card-desc,
.today-meta,
.status,
.calendar-status,
.enrollment-updated,
.enrollment-hint {
  font-weight: 400 !important;
}

/* 담당자 등 메타 정보: 작아도 가늘기만 하지 않도록 */
.file-meta,
.important-meta,
.card-meta,
.category-count,
.important-category,
.today-cat {
  font-weight: 500 !important;
}

/* 재적 숫자는 숫자 정보라 조금만 강조 */
.enrollment-summary-value,
.enrollment-total-value,
.enrollment-count,
.enrollment-grade-total {
  font-weight: 650 !important;
}

/* 헤더 시간/영문 학교명은 시각적 후순위 */
.header-time,
.school-name-en {
  font-weight: 500 !important;
}



/* =====================================================
   DUTY SCHEDULE — Google Sheet live view
===================================================== */
.duty-section{margin:-10px 0 38px}
.duty-box{border:1px solid #dfe5ed;border-radius:9px;background:#fff;overflow:hidden}
.duty-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fbfcfe}
.duty-title-wrap{display:flex;align-items:center;gap:10px}.duty-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:7px;background:#edf4fd;color:var(--blue)}.duty-icon svg{width:18px;height:18px}.duty-title{font-size:1.0625rem;font-weight:650}.duty-date{margin-top:3px;color:#7c8797;font-size:.8125rem;font-weight:400}.duty-actions{display:flex;align-items:center;gap:8px}.duty-link{font-size:.8125rem!important}
.duty-today{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 18px}.duty-row{min-width:0;padding:16px 18px 16px 0;display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:start}.duty-row+.duty-row{padding-left:18px;border-left:1px solid var(--line)}.duty-kind{grid-column:1/-1;margin-bottom:8px;color:#647187;font-size:.8125rem;font-weight:600}.duty-dot{width:8px;height:8px;margin-top:7px;border-radius:50%;background:#5689ce}.duty-row.lunch .duty-dot{background:#37a77d}.duty-row.night .duty-dot{background:#7969d3}.duty-people{min-width:0;font-size:.9375rem;line-height:1.55;font-weight:500}.duty-role{color:#8792a2;font-size:.75rem;font-weight:400;margin-right:4px}.duty-empty{color:#9aa4b2;font-weight:400}.duty-note{grid-column:1/-1;margin:7px 0 0 18px;color:#7c8797;font-size:.75rem;line-height:1.45}.duty-current-note{margin:0 18px 10px;padding:9px 11px;border-radius:6px;background:#f7f9fc;color:#69768a;font-size:.8125rem;line-height:1.45}
.duty-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-top:1px solid var(--line);background:#fbfcfe}.duty-hint{color:#8993a2;font-size:.75rem}.duty-toggle{border:0;background:transparent;color:var(--blue);font-size:.8125rem;font-weight:600;padding:5px 0}.duty-week{display:none;border-top:1px solid var(--line);padding:6px 18px 14px}.duty-box.open .duty-week{display:block}.duty-table{width:100%;border-collapse:collapse;font-size:.875rem}.duty-table th,.duty-table td{padding:10px 9px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top}.duty-table th{color:#687487;font-size:.8125rem;font-weight:600;background:#fafbfd}.duty-table .date-cell{width:110px;white-space:nowrap;font-weight:550}.duty-status{padding:18px;color:#7d8898;font-size:.875rem}.duty-loading{animation:enrollmentPulse 1.2s ease-in-out infinite}
@media(max-width:820px){.duty-head{align-items:flex-start}.duty-today{grid-template-columns:1fr}.duty-row{padding:14px 0}.duty-row+.duty-row{padding-left:0;border-left:0;border-top:1px solid var(--line)}.duty-foot{align-items:flex-start;flex-direction:column}.duty-week{overflow-x:auto}.duty-table{min-width:700px}}
/* requested readability tweaks */
.chip{font-size:.9375rem!important}.enrollment-count{font-size:1.0625rem!important}.enrollment-teacher{font-size:.875rem!important;line-height:1.4}.enrollment-table tbody th{font-size:.9375rem!important}
