/* 진학좌표 공통 브랜드 레이어 */
:root {
  --brand-ink: #202033;
  --brand-muted: #69697b;
  --brand-line: #deddea;
  --brand-page: #f6f5fb;
  --brand-primary: #6552d9;
  --brand-primary-dark: #4d3eb5;
  --brand-primary-soft: #efedff;
  --brand-coral: #e8674a;
  --brand-coral-soft: #fff0eb;
}

.brand-lockup {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--brand-ink);
  text-decoration: none;
}

.brand-lockup > span {
  position: relative;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: var(--brand-primary);
  color: #fff;
  font-size: 17px;
  font-weight: 900;
  box-shadow: 0 7px 18px rgba(101, 82, 217, .22);
}

.brand-lockup > span::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 8px;
  height: 8px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--brand-coral);
}

.brand-lockup > strong {
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -.04em;
}

.brand-lockup.compact { margin-bottom: 24px; }
.brand-lockup.compact > span { width: 30px; height: 30px; border-radius: 9px; font-size: 15px; }
.brand-lockup.compact > strong { font-size: 15px; }

body:not(:has(.home-shell)) {
  background:
    radial-gradient(circle at 5% 0%, rgba(101, 82, 217, .07), transparent 24rem),
    var(--brand-page);
  color: var(--brand-ink);
}

.admission-shell,
.card-shell,
.dashboard-shell,
.viewer-shell { padding-top: 30px; }

.page-head,
.dashboard-head,
.viewer-head {
  padding-bottom: 24px;
  border-bottom: 1px solid var(--brand-line);
}

.page-head h1,
.dashboard-head h1,
.viewer-head h1,
.gate-panel h1 {
  color: var(--brand-ink);
  letter-spacing: -.045em;
}

.eyebrow { color: var(--brand-primary) !important; letter-spacing: .07em; }

.primary-button,
.search-link,
.card-link,
.gate-panel .primary-button {
  border-color: var(--brand-primary) !important;
  background: var(--brand-primary) !important;
  color: #fff !important;
}

.primary-button:hover,
.search-link:hover,
.card-link:hover,
.gate-panel .primary-button:hover { background: var(--brand-primary-dark) !important; }

.secondary-button,
.home-button,
.home-link,
.print-button,
.page-actions a,
.page-actions button {
  border-color: var(--brand-line);
  border-radius: 10px;
}

.filter-panel,
.student-file-bar,
.class-toolbar,
.class-summary,
.student-pane,
.detail-pane,
.card-content > section,
.card-summary,
.saved-card,
.gate-panel {
  border-color: var(--brand-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 30px rgba(38, 33, 73, .045);
}

.filter-panel,
.student-file-bar,
.class-toolbar { padding: 18px; }

.privacy-note,
.storage-note,
.source-note {
  border-left-color: var(--brand-primary) !important;
  border-radius: 0 12px 12px 0;
  background: var(--brand-primary-soft) !important;
}

.privacy-note span,
.storage-note span,
.source-note span { color: #595477 !important; }

.slot-number,
.source-student {
  background: var(--brand-primary-soft) !important;
  color: var(--brand-primary) !important;
}

.source-teacher,
.strategy-안정 {
  background: #e9f5f3 !important;
  color: #13776f !important;
}

.advanced-toggle,
.view-switch {
  border-radius: 10px;
  background: #f1f0f7;
}

.view-switch button.is-active {
  background: var(--brand-primary) !important;
  border-radius: 8px;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
a:focus-visible {
  outline-color: rgba(101, 82, 217, .34) !important;
}

@media (max-width: 620px) {
  .brand-lockup.compact { margin-bottom: 18px; }
  .admission-shell,
  .card-shell,
  .dashboard-shell,
  .viewer-shell { padding-top: 18px; }
}
