/* APMS SaaS Design Alignment 1.0
   Academy OS와 APMS의 시각 언어를 맞추기 위한 안전한 override layer.
   기능/문구/버튼명/화면 구조는 변경하지 않고, 색상·토큰·공통 컴포넌트 톤만 정렬한다.
*/

:root {
  --primary: #007AFF;
  --primary-dark: #0066CC;
  --primary-soft: rgba(0, 122, 255, 0.08);
  --primary-rgb: 0, 122, 255;
  --accent: #007AFF;

  --success: #34C759;
  --success-rgb: 52, 199, 89;
  --error: #FF3B30;
  --error-rgb: 255, 59, 48;
  --danger: #FF3B30;
  --warning: #FF9500;
  --warning-rgb: 255, 149, 0;

  --bg: #F2F2F7;
  --surface: #FFFFFF;
  --surface-2: #F9F9FB;
  --surface-soft: #F9F9FB;
  --surface-alpha: rgba(255, 255, 255, 0.86);

  --border: rgba(0, 0, 0, 0.10);
  --border-soft: rgba(0, 0, 0, 0.06);

  --text: #1C1C1E;
  --text-soft: #3A3A3C;
  --secondary: #6C6C70;

  --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md: 0 6px 18px rgba(0,0,0,0.10);
  --shadow-lg: 0 16px 48px rgba(0,0,0,0.14);

  --radius-sm: 10px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  --subj-math-bg: rgba(0, 122, 255, 0.08);
  --subj-math-text: #007AFF;
}

body.dark {
    --primary: #0A84FF;
    --primary-dark: #0070E0;
    --primary-soft: rgba(10, 132, 255, 0.15);
    --primary-rgb: 10, 132, 255;
    --accent: #0A84FF;

    --success: #30D158;
    --error: #FF453A;
    --danger: #FF453A;
    --warning: #FF9F0A;

    --bg: #121214;
    --surface: #1C1C1E;
    --surface-2: #242427;
    --surface-soft: #242427;
    --surface-alpha: rgba(28, 28, 30, 0.86);

    --border: rgba(255, 255, 255, 0.12);
    --border-soft: rgba(255, 255, 255, 0.08);

    --text: #F5F5F7;
    --text-soft: #D1D1D6;
    --secondary: #8E8E93;

    --shadow: none;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;

    --subj-math-bg: rgba(10, 132, 255, 0.15);
    --subj-math-text: #64A9FF;
}

html {
  background: var(--bg);
}

body {
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

header,
.desktop-topbar,
.top {
  background: var(--surface-alpha);
  border-color: var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.card,
.dashboard-card,
.stat-card,
.report-card,
.student-card,
.class-card,
.planner-card,
.assignment-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.card:hover,
.dashboard-card:hover,
.stat-card:hover,
.student-card:hover,
.class-card:hover,
.planner-card:hover,
.assignment-card:hover {
  border-color: rgba(0, 122, 255, 0.18);
}

.btn,
button.btn {
  border-radius: var(--radius-md);
  border-color: var(--border);
  transition: transform 150ms ease, background 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease;
}

.btn:hover,
button.btn:hover {
  border-color: rgba(0, 122, 255, 0.22);
}

.btn-primary,
button.btn-primary {
  background: var(--primary);
  color: #FFFFFF;
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(0, 122, 255, 0.20);
}

.btn-primary:hover,
button.btn-primary:hover {
  background: var(--primary-dark);
}

.btn-primary:active,
button.btn-primary:active {
  background: var(--primary-dark);
  transform: scale(0.98);
}

body.dark .btn-primary,
body.dark button.btn-primary {
  box-shadow: none;
}

.tab-bar {
  background: var(--surface-2);
  border: 1px solid var(--border-soft);
}

.tab-btn {
  color: var(--secondary);
}

.tab-btn.active,
.tab-btn[aria-selected="true"] {
  background: var(--surface);
  color: var(--primary);
  box-shadow: var(--shadow-sm);
}

input,
select,
textarea,
.std-input-base {
  background: var(--surface);
  color: var(--text);
  border-color: var(--border);
  border-radius: var(--radius-md);
}

input:focus,
select:focus,
textarea:focus,
.std-input-base:focus {
  border-color: rgba(0, 122, 255, 0.55);
  box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.12);
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--primary);
}

#modal-overlay {
  background: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.modal,
.modal-content,
.modal-box,
.modal-sheet,
#modal-content,
#modal-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}

table {
  border-color: var(--border);
}

table td,
table th,
th,
td {
  border-color: var(--border);
}

th {
  color: var(--secondary);
}

tr:hover td {
  background: rgba(0, 122, 255, 0.035);
}

.badge,
.std-badge,
.chip {
  border-radius: var(--radius-full);
}

[style*="#1A5CFF"],
[style*="rgba(26,92,255"] {
  --primary: #007AFF;
}

/* Standalone planner/homework pages */
.planner-shell,
.planner-layout,
.app-shell,
.submit-wrap,
.wrap {
  color: var(--text);
}

.coach-card,
.subject-card,
.day-card,
.month-card,
.upload-card,
.preview-card {
  border-color: var(--border);
  box-shadow: var(--shadow-sm);
}

@media (max-width: 640px) {
  .card,
  .dashboard-card,
  .stat-card,
  .student-card,
  .class-card,
  .planner-card,
  .assignment-card {
    border-radius: 18px;
  }

  .modal,
  .modal-content,
  .modal-box,
  .modal-sheet,
  #modal-content,
  #modal-box {
    border-radius: 22px;
  }
}


/* APMS x Academy OS phase 1 final guards */
.ap-card,
.ap-soft-note,
.ap-admin-mini-metric {
  border: 1px solid var(--border) !important;
  background: var(--surface) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-sm) !important;
  box-sizing: border-box !important;
}

.ap-soft-note {
  background: var(--surface-2) !important;
  color: var(--secondary) !important;
  font-size: 12px !important;
  font-weight:500 !important;
  line-height: 1.55 !important;
}

.ap-stat-value,
.stat-value,
.stat-card .val,
.summary-value,
.ap-admin-mini-metric > div:first-child,
.cls-v4-pill b {
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.btn,
button.btn {
  border-radius: var(--radius-md) !important;
}

.card,
.stat-card,
.dashboard-card,
.report-card,
.student-card,
.class-card,
.planner-card,
.assignment-card,
.portal-card,
.cls-v4-legacy-table {
  border-radius: var(--radius-lg) !important;
}

.cls-v4-tool,
.cls-v4-date-input,
.cls-v4-date-reset,
.badge,
.std-badge,
.chip,
.portal-assignment-pill,
.material-range-tab {
  border-radius: var(--radius-full) !important;
}

.cls-v4-status {
  border-radius: var(--radius-md) !important;
}

.portal-mark,
.omr-no,
.day-pill,
.subject-pill,
.inline-add-row,
.review-d-badge {
  border-radius: var(--radius-md) !important;
}

.btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), 0.14) !important;
}

[style*="rgba(26,92,255,0.07)"],
[style*="rgba(26,92,255,0.08)"],
[style*="rgba(26,92,255,0.1)"],
[style*="rgba(26,92,255,0.10)"] {
  border-color: rgba(var(--primary-rgb), 0.18) !important;
}

@media (max-width: 640px) {
  .card,
  .dashboard-card,
  .stat-card,
  .student-card,
  .class-card,
  .planner-card,
  .assignment-card,
  .portal-card {
    border-radius: var(--radius-lg) !important;
  }
}

/* Student portal / planner tone alignment */
.btn-primary,
button.btn-primary,
.install-mini-btn.primary,
.planner-install-btn.primary,
.pomodoro-mini-btn.primary,
.floating-add {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(var(--primary-rgb), 0.20) !important;
}

.portal-assignment-pill.type-mixed,
.portal-assignment-pill.status-pending,
.omr-status.pending,
.material-range-tab.active,
.hero-kicker,
.feedback-banner,
.planner-coach-card,
.inline-add-row {
  background: var(--primary-soft) !important;
  border-color: rgba(var(--primary-rgb), 0.18) !important;
  color: var(--primary) !important;
}

.portal-mark,
.planner-month-dot {
  background: var(--primary-soft) !important;
  color: var(--primary) !important;
}

.planner-cell.today,
.planner-cell.selected.today,
.planner-month-cell.has-plan,
.planner-month-cell.today,
.planner-month-cell.selected.today {
  background: rgba(var(--primary-rgb), 0.045) !important;
}

.planner-cell.selected,
.planner-cell.selected.today,
.planner-month-cell.selected,
.planner-month-cell.selected.today {
  box-shadow: inset 0 0 0 1.5px rgba(var(--primary-rgb), 0.40) !important;
}

/* APMS x Academy OS phase 2 visible hierarchy layer
   화면 구조와 기능 흐름은 보존하고, 카드/섹션/표/포털/플래너의 체감 계층만 강화한다. */
body {
  background:
    radial-gradient(circle at 12% 0%, rgba(var(--primary-rgb), 0.075), transparent 30%),
    linear-gradient(180deg, #F7F8FB 0%, var(--bg) 44%, var(--bg) 100%) !important;
}
body.dark {
  background:
    radial-gradient(circle at 12% 0%, rgba(var(--primary-rgb), 0.16), transparent 32%),
    linear-gradient(180deg, #15171C 0%, var(--bg) 45%, var(--bg) 100%) !important;
}

.ap-dashboard-shell,
#ap-admin-dashboard,
.student-shell,
.planner-app,
.planner-shell {
  isolation: isolate;
}

.ap-dashboard-shortcuts,
.ap-dashboard-tabbar,
#ap-admin-dashboard .ap-admin-shortcuts {
  padding: 6px !important;
  gap: 8px !important;
  border: 1px solid var(--border-soft) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,0.70) !important;
  box-shadow: var(--shadow-sm) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
body.dark .ap-dashboard-shortcuts,
body.dark .ap-dashboard-tabbar,
body.dark #ap-admin-dashboard .ap-admin-shortcuts {
  background: rgba(28,28,30,0.74) !important;
}
.ap-dashboard-shortcuts .btn,
.ap-dashboard-tabbar .btn,
#ap-admin-dashboard .ap-admin-shortcuts .btn {
  border-radius: 14px !important;
  background: var(--surface) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
}
.ap-dashboard-shortcuts .btn:hover,
.ap-dashboard-tabbar .btn:hover,
#ap-admin-dashboard .ap-admin-shortcuts .btn:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--primary-rgb),0.18) !important;
}
.ap-dashboard-tabbar .btn[style*="var(--surface)"] {
  color: var(--primary) !important;
  box-shadow: 0 6px 16px rgba(var(--primary-rgb),0.12) !important;
}

#ap-admin-dashboard .ap-admin-section,
.ap-dashboard-class-list,
.portal-assignments-card,
.student-profile-card,
.planner-table-card,
.exam-card,
.learning-assist-card,
.planner-coach-card,
.mobile-assist-card {
  border-radius: 22px !important;
}
#ap-admin-dashboard .ap-admin-section {
  padding: 12px !important;
  border: 1px solid var(--border-soft) !important;
  background: rgba(255,255,255,0.56) !important;
  box-shadow: var(--shadow-sm) !important;
}
body.dark #ap-admin-dashboard .ap-admin-section {
  background: rgba(28,28,30,0.58) !important;
}
.card-title,
.planner-month-title,
.planner-coach-title {
  font-weight:500 !important;
  letter-spacing: -0.045em !important;
}
#ap-admin-dashboard .ap-admin-section-title::before {
  content: none !important;
  display: none !important;
}
#ap-admin-dashboard .ap-admin-section-title {
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
}
#ap-admin-dashboard .ap-admin-shortcuts .btn,
#ap-admin-dashboard .ap-admin-check-item,
#ap-admin-dashboard .ap-admin-teacher-card .btn {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}
#ap-admin-dashboard .ap-stat-value {
  font-size: 20px !important;
  font-weight: 700 !important;
}
#ap-admin-dashboard .ap-admin-mini-metric div:not(.ap-stat-value),
#ap-admin-dashboard .ap-admin-check-item span:first-child {
  font-weight: 400 !important;
}
#ap-admin-dashboard .ap-admin-check-item span:last-child,
#ap-admin-dashboard .admin-teacher-card__name,
#ap-admin-dashboard .admin-teacher-card__chip,
#ap-admin-dashboard .admin-teacher-card__chip-value,
#ap-admin-dashboard .admin-teacher-card__journal-title {
  font-weight: 500 !important;
}
.ap-dashboard-section-head h3 {
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
.ap-dashboard-section-head h3::before {
  content: none !important;
  display: none !important;
}
.ap-admin-mini-metric,
#ap-admin-dashboard .card,
#ap-admin-dashboard .ap-admin-card,
.dashboard-card,
.stat-card,
.portal-card,
.portal-assignment-row,
.omr-card,
.assignment-card,
.planner-table-card,
.learning-assist-card,
.exam-card,
.planner-coach-card,
.mobile-assist-card {
  border-radius: 20px !important;
  border-color: var(--border-soft) !important;
  box-shadow: 0 8px 24px rgba(15,23,42,0.055) !important;
}
body.dark .ap-admin-mini-metric,
body.dark #ap-admin-dashboard .card,
body.dark #ap-admin-dashboard .ap-admin-card,
body.dark .dashboard-card,
body.dark .stat-card,
body.dark .portal-card,
body.dark .portal-assignment-row,
body.dark .omr-card,
body.dark .assignment-card,
body.dark .planner-table-card,
body.dark .learning-assist-card,
body.dark .exam-card,
body.dark .planner-coach-card,
body.dark .mobile-assist-card {
  box-shadow: none !important;
}
.ap-admin-mini-metric:hover,
.portal-assignment-row.is-clickable:hover,
.portal-card:hover,
.planner-table-card:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--primary-rgb),0.18) !important;
}
.ap-admin-check-item {
  border-radius: 16px !important;
  box-shadow: 0 6px 18px rgba(15,23,42,0.045) !important;
}

.cls-v4-wrap {
  background:
    radial-gradient(circle at 10% 0%, rgba(var(--primary-rgb),0.075), transparent 28%),
    linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%) !important;
}
.cls-v4-top,
.cls-v4-tools {
  box-shadow: 0 1px 0 var(--border-soft) !important;
}
.cls-v4-title-main {
  font-weight:500 !important;
  letter-spacing: -0.045em !important;
}
.cls-v4-pill,
.cls-v4-tool,
.cls-v4-date-input,
.cls-v4-date-reset {
  min-height: 38px !important;
}
.cls-v4-board {
  border-color: var(--border-soft) !important;
  box-shadow: 0 10px 28px rgba(15,23,42,0.055) !important;
}
body.dark .cls-v4-board { box-shadow: none !important; }
.cls-v4-board-head {
  background: rgba(var(--primary-rgb),0.035) !important;
}
.cls-v4-row {
  transition: background 160ms ease, transform 160ms ease;
}
.cls-v4-status:not(.tag) {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.22) !important;
}
.cls-v4-empty,
.empty,
.empty-state {
  border-radius: 20px !important;
  background: linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%) !important;
  border: 1px dashed rgba(var(--primary-rgb),0.16) !important;
}

.student-profile-card,
.portal-assignments-card,
.portal-card {
  background: rgba(255,255,255,0.88) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
body.dark .student-profile-card,
body.dark .portal-assignments-card,
body.dark .portal-card {
  background: rgba(28,28,30,0.88) !important;
}
.portal-mark {
  width: 44px !important;
  height: 44px !important;
  border-radius: 18px !important;
  box-shadow: inset 0 0 0 1px rgba(var(--primary-rgb),0.10) !important;
}
.portal-assignment-row {
  padding: 14px !important;
  background: var(--surface) !important;
}
.portal-assignment-meta {
  gap: 7px !important;
}

.planner-table-card,
.learning-assist-card,
.exam-card,
.planner-coach-card,
.mobile-assist-card {
  background: rgba(255,255,255,0.90) !important;
  border: 1px solid var(--border-soft) !important;
}
body.dark .planner-table-card,
body.dark .learning-assist-card,
body.dark .exam-card,
body.dark .planner-coach-card,
body.dark .mobile-assist-card {
  background: rgba(28,28,30,0.90) !important;
}
.planner-view-tabs {
  padding: 6px !important;
  border-radius: 18px !important;
  border: 1px solid var(--border-soft) !important;
  background: rgba(255,255,255,0.66) !important;
  box-shadow: var(--shadow-sm) !important;
}
.planner-view-tab {
  border-radius: 14px !important;
  font-weight:500 !important;
}
.planner-view-tab.active {
  color: var(--primary) !important;
  box-shadow: 0 8px 18px rgba(var(--primary-rgb),0.13) !important;
}
.planner-week-table th,
.planner-month-ledger th {
  background: rgba(var(--primary-rgb),0.035) !important;
}
.planner-week-table td,
.planner-month-ledger td {
  transition: background 160ms ease;
}

@media (max-width: 640px) {
  .ap-dashboard-shortcuts,
  .ap-dashboard-tabbar,
  #ap-admin-dashboard .ap-admin-shortcuts {
    border-radius: 16px !important;
  }
  #ap-admin-dashboard .ap-admin-section,
  .portal-assignments-card,
  .student-profile-card,
  .planner-table-card,
  .learning-assist-card,
  .exam-card,
  .planner-coach-card,
  .mobile-assist-card {
    border-radius: 20px !important;
  }
  .portal-assignment-row { padding: 13px !important; }
}

/* Student management contrast patch 2026-06-04
   Scope: student management/list/detail/add/edit modals only.
   Keep wording, buttons, layout, and data flow unchanged. */
:root {
  --student-mgmt-bg: #eef3f9;
  --student-mgmt-panel: #f7f9fc;
  --student-mgmt-card: #ffffff;
  --student-mgmt-card-strong: #ffffff;
  --student-mgmt-text: #111827;
  --student-mgmt-muted: #4b5563;
  --student-mgmt-border: rgba(15, 23, 42, 0.16);
  --student-mgmt-border-strong: rgba(15, 23, 42, 0.24);
  --student-mgmt-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

body.dark {
  --student-mgmt-bg: #15171c;
  --student-mgmt-panel: #1d2027;
  --student-mgmt-card: #242833;
  --student-mgmt-card-strong: #2a2f3b;
  --student-mgmt-text: #f8fafc;
  --student-mgmt-muted: #cbd5e1;
  --student-mgmt-border: rgba(226, 232, 240, 0.18);
  --student-mgmt-border-strong: rgba(226, 232, 240, 0.28);
  --student-mgmt-shadow: none;
}

.apms-student-contrast {
  color: var(--student-mgmt-text) !important;
  background: var(--student-mgmt-panel) !important;
  border: 1px solid var(--student-mgmt-border) !important;
  border-radius: 20px !important;
  padding: 14px !important;
  box-sizing: border-box !important;
}

.apms-student-contrast,
.apms-student-contrast * {
  text-shadow: none !important;
}

.apms-student-contrast input,
.apms-student-contrast select,
.apms-student-contrast textarea,
.apms-student-contrast .std-input-base,
.apms-student-contrast .apms-student-filter-input,
.apms-student-contrast .apms-student-filter-select {
  background: var(--student-mgmt-card-strong) !important;
  color: var(--student-mgmt-text) !important;
  border: 1px solid var(--student-mgmt-border-strong) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
  opacity: 1 !important;
}

.apms-student-contrast input::placeholder,
.apms-student-contrast textarea::placeholder {
  color: var(--student-mgmt-muted) !important;
  opacity: 1 !important;
}

.apms-student-contrast input:focus,
.apms-student-contrast select:focus,
.apms-student-contrast textarea:focus,
.apms-student-contrast .std-input-base:focus,
.apms-student-contrast .apms-student-filter-input:focus,
.apms-student-contrast .apms-student-filter-select:focus {
  border-color: rgba(var(--primary-rgb), 0.58) !important;
  box-shadow: 0 0 0 4px rgba(var(--primary-rgb), 0.14) !important;
}

.apms-student-contrast .apms-student-filter-grid {
  background: rgba(255, 255, 255, 0.48) !important;
  border: 1px solid var(--student-mgmt-border) !important;
  border-radius: 16px !important;
  padding: 10px !important;
}

body.dark .apms-student-contrast .apms-student-filter-grid {
  background: rgba(255, 255, 255, 0.035) !important;
}

.apms-student-contrast .apms-student-list-note,
.apms-student-contrast [style*="color:var(--secondary)"],
.apms-student-contrast [style*="color: var(--secondary)"] {
  color: var(--student-mgmt-muted) !important;
}

.apms-student-contrast [style*="color:var(--text)"],
.apms-student-contrast [style*="color: var(--text)"] {
  color: var(--student-mgmt-text) !important;
}

.apms-student-contrast .apms-student-list-row,
.apms-student-contrast .apms-discharged-student-row {
  background: var(--student-mgmt-card) !important;
  border: 1px solid var(--student-mgmt-border) !important;
  border-radius: 16px !important;
  padding: 14px !important;
  margin-bottom: 10px !important;
  box-shadow: var(--student-mgmt-shadow) !important;
}

.apms-student-contrast .apms-student-list-row:hover,
.apms-student-contrast .apms-discharged-student-row:hover {
  border-color: rgba(var(--primary-rgb), 0.34) !important;
  background: var(--student-mgmt-card-strong) !important;
}

.apms-student-contrast .apms-student-list-row .btn,
.apms-student-contrast .apms-discharged-student-row .btn,
.apms-student-contrast .apms-button--quiet {
  border: 1px solid var(--student-mgmt-border) !important;
  background: var(--student-mgmt-card-strong) !important;
}

.apms-student-contrast .apms-button--primary,
.apms-student-contrast .btn-primary {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
  color: #fff !important;
}

.apms-student-contrast .apms-student-primary-soft {
  color: var(--primary) !important;
  background: rgba(var(--primary-rgb), 0.10) !important;
  border-color: rgba(var(--primary-rgb), 0.22) !important;
}

.apms-student-contrast .std-badge {
  background: var(--student-mgmt-card-strong) !important;
  border-color: var(--student-mgmt-border) !important;
  color: var(--student-mgmt-text) !important;
}

.apms-student-contrast .apms-student-profile-info-card,
.apms-student-contrast .apms-student-section-card {
  background: var(--student-mgmt-card) !important;
  border: 1px solid var(--student-mgmt-border) !important;
  box-shadow: var(--student-mgmt-shadow) !important;
}

.apms-student-contrast .tab-bar {
  background: var(--student-mgmt-bg) !important;
  border: 1px solid var(--student-mgmt-border) !important;
}

.apms-student-contrast .tab-btn {
  color: var(--student-mgmt-muted) !important;
  border: 1px solid transparent !important;
}

.apms-student-contrast .tab-btn.active,
.apms-student-contrast .tab-btn[aria-selected="true"] {
  background: var(--student-mgmt-card-strong) !important;
  color: var(--primary) !important;
  border-color: rgba(var(--primary-rgb), 0.22) !important;
}

.apms-student-contrast canvas,
.apms-student-contrast table,
.apms-student-contrast .std-tab-content > div,
.apms-student-contrast .std-tab-content [style*="background: var(--surface)"],
.apms-student-contrast .std-tab-content [style*="background:var(--surface)"] {
  background-color: var(--student-mgmt-card) !important;
}

.apms-student-contrast .std-tab-content [style*="background: var(--surface-2)"],
.apms-student-contrast .std-tab-content [style*="background:var(--surface-2)"] {
  background-color: var(--student-mgmt-bg) !important;
}

.apms-student-contrast [style*="border: 1px solid var(--border)"],
.apms-student-contrast [style*="border:1px solid var(--border)"] {
  border-color: var(--student-mgmt-border) !important;
}

.apms-student-form-view {
  max-width: 100%;
}

.apms-student-form-view [style*="background:var(--surface-2)"],
.apms-student-form-view [style*="background: var(--surface-2)"] {
  background: var(--student-mgmt-bg) !important;
  border-color: var(--student-mgmt-border) !important;
}

.apms-student-empty-state {
  background: var(--student-mgmt-card) !important;
  border: 1px solid var(--student-mgmt-border) !important;
  border-radius: 16px !important;
  color: var(--student-mgmt-muted) !important;
}

@media (max-width: 640px) {
  .apms-student-contrast {
    margin: -4px -10px 0 !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }

  .apms-student-contrast .apms-student-filter-grid {
    grid-template-columns: 1fr !important;
  }

  .apms-student-contrast .apms-student-list-row {
    flex-direction: column !important;
    gap: 10px !important;
  }

  .apms-student-contrast .apms-student-list-row > div:last-child {
    width: 100% !important;
    max-width: none !important;
    justify-content: stretch !important;
  }

  .apms-student-contrast .apms-student-list-row > div:last-child .btn {
    flex: 1 1 0 !important;
    min-height: 36px !important;
  }

  .apms-student-profile-view > div[style*="grid-template-columns: 1fr 1fr"],
  .apms-student-profile-view [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

/* ======================================================================
   AP MATH 공통 UI bridge (2026-06-11)
   - 선생님 대시보드 카드 톤(radius 6px / shadow none / 연한 1px border)을
     기존 전역 카드 계열에 bridge한다. 레이아웃/기능/배경 변경 없음.
   - 파일 끝에 위치하여 위쪽 phase 1/2 !important 라운드·그림자 규칙을 이긴다.
   - 모달 외곽 shell은 16px, 모달 내부 카드/row는 6px 계열을 유지한다.
   ====================================================================== */
.card,
.dashboard-card,
.stat-card,
.report-card,
.student-card,
.class-card,
.planner-card,
.assignment-card,
.exam-card,
.omr-card,
#ap-admin-dashboard .card,
#ap-admin-dashboard .ap-admin-card,
.ap-admin-mini-metric,
.ap-card {
  border-radius: 6px !important;
  box-shadow: none !important;
  border-color: var(--border) !important;
}

.ap-admin-check-item {
  border-radius: 6px !important;
  box-shadow: none !important;
}

body.dark .card,
body.dark .dashboard-card,
body.dark .stat-card,
body.dark .report-card,
body.dark .student-card,
body.dark .class-card,
body.dark .planner-card,
body.dark .assignment-card,
body.dark .exam-card,
body.dark .omr-card {
  box-shadow: none !important;
}

/* 모달 외곽 shell: 16px 통일 (열기/닫기/저장/취소 동작은 변경하지 않는다) */
.modal,
.modal-content,
.modal-box,
.modal-sheet,
#modal-content,
#modal-box {
  border-radius: 16px !important;
}

@media (max-width: 640px) {
  .card,
  .dashboard-card,
  .stat-card,
  .report-card,
  .student-card,
  .class-card,
  .planner-card,
  .assignment-card,
  .exam-card,
  .omr-card {
    border-radius: 6px !important;
  }
}

/* 모바일 바텀시트 형태(#modal-content가 화면 하단 고정)는 상단 모서리만 둥글게 유지 */
@media (max-width: 600px) {
  #modal-content {
    border-radius: 16px 16px 0 0 !important;
  }
}

