/* 강사센터 · 마스터 — 여기어때 YDS 디자인 토큰 (Lively Red 800 #F94239, 무채색 Neutral, Pretendard, 자간 0) */
:root {
  --m-primary: #f94239;
  --m-primary-deep: #ea2013;
  --m-primary-soft: #fff5f5;
  --m-primary-100: #ffedea;
  --m-primary-200: #fedfde;
  --m-primary-500: #fb7f79;
  --m-fb: #f94239;
  --m-ink-deep: #222222;
  --m-ink: #222222;
  --m-charcoal: #474747;
  --m-slate: #5c5c5c;
  --m-steel: #707070;
  --m-stone: #999999;
  --m-hairline: #dcdcdc;
  --m-hairline-soft: #efe6e5;
  --m-surface: #f7f3f3;
  --m-canvas: #ffffff;
  --m-success: #01a484;
  --m-success-soft: #e7f7f3;
  --m-attention: #c25e00;
  --m-attention-soft: #ffe7d6;
  --m-critical: #f94239;
  --m-critical-strong: #ea2013;
  --m-critical-soft: #ffedea;
  --m-info: #006ce0;
  --m-info-soft: #e3f0ff;
  --m-violet: #7059fa;
  --m-r-lg: 8px;
  --m-r-xl: 16px;
  --m-r-xxl: 20px;
  --m-shadow: 0 2px 16px rgba(0, 0, 0, .08);
  --m-top: 64px;
  --m-side: 248px;
}
body[data-mode="admin"] { background: var(--m-surface); color: var(--m-ink); }
.adm { font-family: var(--font); letter-spacing: 0; color: var(--m-ink); }
.adm .icon { stroke-width: 1.9; }
.adm .num, .adm table { font-variant-numeric: tabular-nums; }
.a-muted { color: var(--m-steel); font-size: 14px; }
.a-hide-sm { }

/* 버튼 — YDS 둥근 사각 (8px, 큰 버튼 12px), 굵기 600 */
.a-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 8px 18px; border-radius: 8px; font-size: 14px; font-weight: 600; line-height: 20px; letter-spacing: 0; white-space: nowrap; border: 2px solid transparent; transition: background-color .15s, border-color .15s, color .15s; text-decoration: none; cursor: pointer; }
.a-btn:disabled { opacity: .45; cursor: not-allowed; }
.a-btn-primary { background: var(--m-primary); color: #fff; }
.a-btn-primary:hover { background: var(--m-primary-deep); }
.a-btn-dark { background: var(--m-ink-deep); color: #fff; }
.a-btn-outline { background: transparent; color: var(--m-ink-deep); border: 1px solid var(--m-ink-deep); }
.a-btn-outline:hover { background: var(--m-surface); }
.a-btn-ghost { background: transparent; color: var(--m-ink-deep); border: 1px solid var(--m-hairline); }
.a-btn-ghost:hover { background: var(--m-surface); }
.a-btn-text { background: transparent; color: var(--m-charcoal); padding-inline: 10px; }
.a-btn-text:hover { background: var(--m-surface); }
.a-btn-light { background: #fff; color: var(--m-ink-deep); }
.a-btn-danger { background: var(--m-critical); color: #fff; }
.a-btn-danger:hover { background: var(--m-critical-strong); }
.a-btn.danger { color: var(--m-critical-strong); }
.a-btn-outline.danger { border-color: var(--m-critical); }
.a-btn-sm { min-height: 32px; padding: 4px 14px; font-size: 13px; }
.a-btn-lg { min-height: 48px; padding: 12px 24px; border-radius: 12px; font-size: 15px; }
.a-btn-block { width: 100%; }
.a-icon-btn { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: 50%; background: transparent; color: var(--m-ink); flex: none; }
.a-icon-btn:hover:not(:disabled) { background: var(--m-surface); }
.a-icon-btn:disabled { opacity: .3; cursor: default; }
.a-icon-btn.sm { width: 32px; height: 32px; }
.a-link { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 700; color: var(--m-primary); text-decoration: none; }
.a-link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* 입력 */
.a-form { display: grid; gap: 16px; }
.a-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.a-field { display: grid; gap: 6px; min-width: 0; }
.a-field > label, .a-label { font-size: 14px; font-weight: 700; color: var(--m-ink); }
.a-field label small { font-weight: 400; color: var(--m-steel); }
.a-input { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--m-hairline); border-radius: var(--m-r-lg); background: var(--m-canvas); font-size: 15px; color: var(--m-ink); font-family: inherit; }
textarea.a-input { min-height: 0; resize: vertical; line-height: 1.6; }
.a-input:focus { outline: none; border: 2px solid var(--m-primary); padding: 9px 11px; }
.a-input.a-sm { min-height: 36px; padding: 6px 10px; font-size: 14px; width: auto; }
.a-input.a-sm:focus { padding: 5px 9px; }
.a-check { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; cursor: pointer; }
.a-check input { width: 18px; height: 18px; accent-color: var(--m-primary); flex: none; }
.a-error { margin: 0; color: var(--m-critical-strong); font-size: 14px; font-weight: 600; }
.a-error:empty { display: none; }
.a-form-foot { display: flex; justify-content: flex-end; padding-top: 8px; border-top: 1px solid var(--m-hairline-soft); }
.a-sub { margin: 8px 0 -4px; font-size: 13px; font-weight: 700; color: var(--m-steel); letter-spacing: .02em; }
.a-sub:first-child { margin-top: 0; }

/* 상태 알약 */
.a-pill { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 100px; font-size: 12px; font-weight: 700; line-height: 18px; white-space: nowrap; flex: none; }
.a-pill.ok { background: var(--m-success-soft); color: var(--m-success); }
.a-pill.warn { background: var(--m-attention-soft); color: var(--m-attention); }
.a-pill.bad { background: var(--m-critical-soft); color: var(--m-critical-strong); }
.a-pill.info { background: var(--m-info-soft); color: var(--m-info); }
.a-pill.mute { background: var(--m-surface); color: var(--m-slate); }
.a-pill.dark { background: var(--m-ink-deep); color: #fff; }
.a-chip { padding: 4px 12px; border-radius: 100px; background: var(--m-primary-soft); color: var(--m-primary-deep); font-size: 13px; font-weight: 700; }

/* ===== 로그인 ===== */
.a-login { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-height: 100vh; min-height: 100dvh; background: var(--m-canvas); }
.a-login-brand { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; padding: 48px 48px 0; background: var(--m-primary); color: #fff; overflow: hidden; }
.a-login-brand::after { content: ""; position: absolute; right: -140px; top: 38%; width: 360px; height: 360px; border-radius: 50%; border: 56px solid rgba(255, 255, 255, .08); pointer-events: none; }
.a-logo { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.a-logo > b { font-size: 18px; font-weight: 800; letter-spacing: 0; }
.a-logo em { font-style: normal; font-size: 13px; font-weight: 600; padding: 2px 10px; border-radius: 100px; background: var(--m-surface); color: var(--m-slate); }
.a-logo-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: var(--m-primary); color: #fff; }
.a-login-brand .a-logo-mark { background: #fff; color: var(--m-primary); }
.a-login-brand .a-logo em { background: rgba(255, 255, 255, .18); color: #fff; }
.a-eyebrow { margin: 0 0 16px; font-size: 14px; font-weight: 700; opacity: .85; }
.a-login-hero h2 { margin: 0; font-size: clamp(34px, 4vw, 52px); font-weight: 600; line-height: 1.17; letter-spacing: 0; }
.a-login-points { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 12px; font-size: 15px; }
.a-login-points li { display: flex; align-items: center; gap: 10px; }
.a-login-points .icon { width: 28px; height: 28px; padding: 6px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.a-login-foot { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; padding: 20px 0 24px; border-top: 1px solid rgba(255, 255, 255, .25); font-size: 13px; }
.a-back-link { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-weight: 700; text-decoration: none; }
.a-back-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.a-login-panel { display: flex; align-items: center; justify-content: center; padding: 48px 24px; }
.a-login-card { width: 100%; max-width: 420px; display: grid; gap: 20px; }
.a-login-card h1 { margin: 0; font-size: 32px; font-weight: 700; letter-spacing: 0; }
.a-login-card > p { margin: -12px 0 0; }
.a-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--m-surface); }
.a-seg button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--m-slate); }
.a-seg button.on { background: #fff; color: var(--m-ink-deep); font-weight: 700; box-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .06); }
.a-demo { padding: 12px 16px; border-radius: var(--m-r-lg); background: var(--m-primary-soft); color: var(--m-primary-deep); font-size: 13px; text-align: center; }

/* ===== 셸 ===== */
.a-app { min-height: 100vh; }
.a-acting { position: sticky; top: 0; z-index: 46; display: flex; align-items: center; gap: 10px; padding: 8px 24px; background: var(--m-ink-deep); color: #fff; font-size: 13px; }
.a-acting span { flex: 1; }
.a-top { position: sticky; top: 0; z-index: 40; height: var(--m-top); display: flex; align-items: center; gap: 12px; padding: 0 24px; background: var(--m-canvas); border-bottom: 1px solid var(--m-hairline-soft); }
.a-acting + .a-top { top: 48px; }
.a-menu { display: none; }
.a-top-right { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.a-user { display: inline-flex; align-items: center; gap: 6px; padding: 0 8px; font-size: 14px; font-weight: 600; color: var(--m-charcoal); }
.a-shell { display: grid; grid-template-columns: var(--m-side) minmax(0, 1fr); min-height: calc(100vh - var(--m-top)); }
.a-side { position: sticky; top: var(--m-top); height: calc(100vh - var(--m-top)); overflow-y: auto; display: flex; flex-direction: column; gap: 18px; padding: 20px 12px; background: var(--m-canvas); border-right: 1px solid var(--m-hairline-soft); }
.a-nav-group { display: grid; gap: 2px; }
.a-nav-label { margin: 0 0 6px; padding: 0 12px; font-size: 12px; font-weight: 700; color: var(--m-stone); }
.a-nav { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 8px 12px; border-radius: var(--m-r-lg); color: var(--m-charcoal); font-size: 15px; font-weight: 600; text-decoration: none; }
.a-nav:hover { background: var(--m-surface); }
.a-nav.on { background: var(--m-primary-soft); color: var(--m-primary-deep); font-weight: 700; }
.a-count { margin-left: auto; min-width: 22px; padding: 0 7px; border-radius: 100px; background: var(--m-critical); color: #fff; font-size: 12px; font-weight: 700; line-height: 20px; text-align: center; }
.a-side-card { margin-top: auto; padding: 16px; border-radius: var(--m-r-xl); background: var(--m-surface); font-size: 13px; color: var(--m-slate); display: grid; gap: 8px; }
.a-side-card b { color: var(--m-ink-deep); font-size: 14px; }
.a-side-card p { margin: 0; line-height: 1.55; }
.a-side-foot a { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; font-size: 13px; color: var(--m-steel); text-decoration: none; }
.a-side-foot a:hover { color: var(--m-ink); }
.a-scrim { display: none; }
.a-main { min-width: 0; padding: 32px 32px 80px; }
.a-page { max-width: 1120px; margin: 0 auto; display: grid; gap: 16px; }
.a-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 4px; }
.a-head h1 { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: 0; line-height: 1.25; }
.a-head p { margin: 6px 0 0; max-width: 680px; font-size: 15px; color: var(--m-slate); line-height: 1.5; }
.a-head-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.a-hint { display: flex; gap: 6px; align-items: flex-start; margin: 0; font-size: 13px; color: var(--m-steel); }
.a-hint .icon { margin-top: 2px; }

/* 카드 */
.a-card { background: var(--m-canvas); border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); padding: 24px; min-width: 0; }
.a-card-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.a-card-head h2 { margin: 0; font-size: 18px; font-weight: 700; letter-spacing: 0; }
.a-card-head .a-link, .a-card-head .a-row-actions, .a-card-head select { margin-left: auto; }
.a-card-head p { margin: 2px 0 0; }
.a-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--m-hairline-soft); }
.a-grow { flex: 1; min-width: 0; }
.a-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.a-stack { display: grid; gap: 12px; }
.a-pad { padding: 8px 0; margin: 0; }
.a-empty { display: grid; place-items: center; gap: 8px; padding: 36px 16px; text-align: center; color: var(--m-steel); }
.a-empty .icon { width: 32px; height: 32px; color: var(--m-stone); }
.a-empty p { margin: 0; font-size: 14px; }
.a-spacer { flex: 1; }

/* KPI */
.a-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.a-kpi { display: grid; gap: 4px; padding: 20px; border-radius: var(--m-r-xl); background: var(--m-canvas); border: 1px solid var(--m-hairline-soft); text-decoration: none; color: inherit; transition: border-color .15s; }
.a-kpi:hover { border-color: var(--m-primary); box-shadow: 0 2px 16px rgba(0, 0, 0, .08); }
.a-kpi span { font-size: 13px; font-weight: 700; color: var(--m-slate); }
.a-kpi b { font-size: 28px; font-weight: 700; letter-spacing: 0; line-height: 1.2; font-variant-numeric: tabular-nums; }
.a-kpi small { font-size: 13px; color: var(--m-steel); }
.a-kpi.warn { background: var(--m-attention-soft); border-color: transparent; }
.a-kpi.warn b { color: var(--m-attention); }
.a-kpi.info b { color: var(--m-primary); }

/* 주차 띠 */
.a-weeks { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.a-week { display: grid; gap: 2px; padding: 12px 14px; border-radius: var(--m-r-lg); border: 1px solid var(--m-hairline-soft); background: var(--m-canvas); min-width: 0; }
.a-week b { font-size: 14px; }
.a-week span { font-size: 13px; color: var(--m-charcoal); font-variant-numeric: tabular-nums; }
.a-week small { font-size: 12px; color: var(--m-steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-week.now { background: var(--m-primary-soft); border-color: var(--m-primary); }
.a-week.now b { color: var(--m-primary-deep); }
.a-week.past { background: var(--m-surface); opacity: .75; }

/* 리스트 */
.a-list { list-style: none; margin: 0; padding: 0; }
.a-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--m-hairline-soft); }
.a-list li:last-child { border-bottom: 0; }
.a-list li.clickable { cursor: pointer; }
.a-list li.clickable:hover b { color: var(--m-primary); }
.a-who { display: flex; align-items: center; gap: 12px; min-width: 0; }
.a-who > div { display: grid; min-width: 0; }
.a-who b { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-who small { font-size: 13px; color: var(--m-steel); }
.a-avatar { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--m-primary-soft); color: var(--m-primary-deep); font-weight: 700; font-size: 14px; }
.a-row-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.a-items { list-style: none; margin: 0; padding: 0; }
.a-items li { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--m-hairline-soft); }
.a-items li:last-child { border-bottom: 0; }
.a-item-main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.a-item-main b { font-size: 15px; font-weight: 700; }
.a-item-main small { font-size: 13px; color: var(--m-steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-weekno { flex: none; padding: 4px 12px; border-radius: 100px; background: var(--m-ink-deep); color: #fff; font-size: 13px; font-weight: 700; }

/* 툴바 · 탭 */
.a-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.a-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.a-tab { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 16px; border-radius: 100px; border: 1px solid var(--m-hairline); background: var(--m-canvas); color: var(--m-ink); font-size: 14px; font-weight: 700; }
.a-tab span { color: var(--m-steel); font-weight: 600; }
.a-tab.on { background: var(--m-ink-deep); border-color: var(--m-ink-deep); color: #fff; }
.a-tab.on span { color: #bbbbbb; }
.a-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.a-search { position: relative; }
.a-search .icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--m-stone); }
.a-search .a-input { padding-left: 32px; }
.a-search .a-input:focus { padding-left: 31px; }
.a-bulk { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; margin-bottom: 12px; border-radius: var(--m-r-lg); background: var(--m-primary-soft); }
.a-bulk .a-muted { flex: 1; }

/* 표 */
.a-table-wrap { overflow-x: auto; margin: 0 -24px; padding: 0 24px; }
.a-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.a-table th { padding: 10px 12px; text-align: left; font-size: 12px; font-weight: 700; color: var(--m-steel); border-bottom: 1px solid var(--m-hairline); white-space: nowrap; }
.a-table td { padding: 12px; border-bottom: 1px solid var(--m-hairline-soft); vertical-align: middle; }
.a-table tr:last-child td { border-bottom: 0; }
.a-table .right { text-align: right; }
.a-table td.num { white-space: nowrap; color: var(--m-charcoal); }
.a-table td.full { color: var(--m-success); font-weight: 700; }
.a-table tr.clickable { cursor: pointer; }
.a-table tr.clickable:hover td { background: #fafafa; }
.a-table .w-check { width: 36px; }
.a-table input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--m-primary); }
.a-name { font-weight: 700; color: var(--m-ink-deep); font-size: 14px; text-align: left; }
.a-name:hover { color: var(--m-primary); text-decoration: underline; text-underline-offset: 3px; }
.a-memo { display: block; font-size: 12px; color: var(--m-steel); }
.a-bar { width: 120px; height: 6px; border-radius: 100px; background: var(--m-surface); overflow: hidden; display: inline-block; vertical-align: middle; margin-right: 8px; }
.a-bar span { display: block; height: 100%; background: var(--m-primary); border-radius: inherit; }

/* 기수 */
.a-cohort-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.a-cohort-stats > * { display: grid; gap: 2px; padding: 12px 14px; border-radius: var(--m-r-lg); background: var(--m-surface); text-decoration: none; color: inherit; }
.a-cohort-stats a:hover { background: var(--m-primary-soft); }
.a-cohort-stats b { font-size: 22px; font-weight: 700; }
.a-cohort-stats span { font-size: 13px; color: var(--m-steel); }
.a-preview-weeks { display: grid; gap: 4px; padding: 12px 14px; border-radius: var(--m-r-lg); background: var(--m-surface); font-size: 13px; color: var(--m-charcoal); font-variant-numeric: tabular-nums; }
.a-preview-weeks b { display: inline-block; min-width: 44px; color: var(--m-ink-deep); }

/* 상세 · 검수 */
.a-detail-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.a-detail-stats > div { padding: 12px; border-radius: var(--m-r-lg); background: var(--m-surface); display: grid; }
.a-detail-stats span { font-size: 12px; color: var(--m-steel); font-weight: 700; }
.a-detail-stats b { font-size: 20px; font-weight: 700; }
.a-weekbars { display: grid; gap: 6px; margin-bottom: 18px; }
.a-weekbars > div { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.a-weekbars > div > span { width: 40px; color: var(--m-steel); font-weight: 700; }
.a-weekbars .a-bar { flex: 1; width: auto; }
.a-review-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; font-size: 13px; color: var(--m-steel); }
.a-review-box { display: grid; gap: 12px; padding: 16px; border-radius: var(--m-r-xl); background: var(--m-surface); margin-bottom: 12px; }
.a-review-box p { margin: 0; font-size: 14px; word-break: break-all; }
.a-review-box a { color: var(--m-primary); }
.a-text { white-space: pre-wrap; font-size: 15px; line-height: 1.7; background: var(--m-canvas); padding: 14px; border-radius: var(--m-r-lg); }
.a-shots { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.a-shot { display: block; aspect-ratio: 1; border-radius: var(--m-r-lg); overflow: hidden; background: var(--m-canvas); }
.a-shot img { width: 100%; height: 100%; object-fit: cover; }
.a-file { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: var(--m-r-lg); background: var(--m-canvas); font-size: 13px; font-weight: 600; }
.a-auto { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 14px; border-radius: var(--m-r-lg); font-size: 13px; margin-bottom: 12px; }
.a-auto b { display: inline-flex; align-items: center; gap: 6px; }
.a-auto.ok { background: var(--m-success-soft); color: var(--m-success); }
.a-auto.warn { background: var(--m-attention-soft); color: var(--m-attention); }
.a-q { padding: 16px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); }
.a-q-head { display: flex; align-items: center; gap: 12px; }
.a-q-head > div { flex: 1; min-width: 0; display: grid; }
.a-q-head small { font-size: 13px; color: var(--m-steel); }
.a-q-body { margin: 10px 0 12px 48px; font-size: 15px; line-height: 1.65; color: var(--m-charcoal); white-space: pre-line; }
.a-q-by { margin: 8px 0 0 48px; font-size: 12px; color: var(--m-steel); }
@media (max-width: 720px) { .a-q-by { margin-left: 0; } }
.a-q-form { display: flex; gap: 8px; align-items: flex-end; margin-left: 48px; }
.a-q-form textarea { flex: 1; }
.a-confirm { margin: 0; font-size: 15px; line-height: 1.7; color: var(--m-charcoal); }

/* 모달 */
.a-modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 16px; background: rgba(0, 0, 0, .5); animation: fade .15s; }
.a-modal { width: 100%; max-width: 440px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); display: flex; flex-direction: column; border-radius: var(--m-r-xl); background: var(--m-canvas); box-shadow: 0 4px 20px rgba(0, 0, 0, .32); animation: pop .18s; font-family: var(--font); color: var(--m-ink); }
.a-modal.md { max-width: 600px; }
.a-modal.lg { max-width: 760px; }
.a-modal-head { display: flex; align-items: center; gap: 12px; padding: 20px 20px 0 24px; }
.a-modal-head h3 { margin: 0; flex: 1; font-size: 20px; font-weight: 700; letter-spacing: 0; }
.a-modal-body { padding: 16px 24px; overflow-y: auto; }
.a-modal-actions { display: flex; align-items: center; gap: 8px; padding: 14px 24px 20px; border-top: 1px solid var(--m-hairline-soft); flex-wrap: wrap; }
.a-toast { background: var(--m-ink-deep); }
.a-toast .icon { color: #fb7f79; }
.a-toast.warn .icon { color: #ffb37c; }

/* 반응형 */
@media (max-width: 1100px) {
  .a-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .a-login { grid-template-columns: minmax(0, 1fr); }
  .a-login-brand { padding: 28px 20px 0; gap: 28px; }
  .a-login-hero h2 { font-size: clamp(28px, 7vw, 40px); }
  .a-login-points { margin-top: 20px; }
  .a-login-panel { padding: 36px 16px 48px; }
  .a-menu { display: inline-grid; }
  .a-shell { grid-template-columns: minmax(0, 1fr); }
  .a-side { position: fixed; top: var(--m-top); left: 0; bottom: 0; z-index: 50; width: min(290px, 86vw); height: auto; transform: translateX(-100%); transition: transform .22s ease; box-shadow: var(--m-shadow); }
  .a-app.nav-open .a-side { transform: none; }
  .a-app.nav-open .a-scrim { display: block; position: fixed; inset: var(--m-top) 0 0 0; z-index: 45; background: rgba(0, 0, 0, .4); }
  .a-main { padding: 24px 16px 80px; }
  .a-grid-2 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .a-top { padding: 0 8px; gap: 4px; }
  .a-hide-sm { display: none !important; }
  .a-head h1 { font-size: 24px; }
  .a-card { padding: 18px; }
  .a-table-wrap { margin: 0 -18px; padding: 0 18px; }
  .a-form-row { grid-template-columns: minmax(0, 1fr); }
  .a-kpi b { font-size: 22px; }
  .a-kpi { padding: 16px; }
  .a-items li { flex-wrap: wrap; }
  .a-items li .a-item-main { flex-basis: 100%; }
  .a-q-body, .a-q-form { margin-left: 0; }
  .a-q-form { flex-direction: column; align-items: stretch; }
  .a-acting { padding: 8px 12px; flex-wrap: wrap; }
  .a-acting + .a-top { top: 0; position: relative; }
  .a-list li { flex-wrap: wrap; }
}

/* ===== v3: 로그인 왼쪽 — 흰 바탕 + 빨강 포인트 (강사 · 마스터 = 레드, 코치 = 그린). 제목의 <em> 만 포인트 색 ===== */
.a-login-brand { padding: 44px 48px 0; color: var(--m-ink); border-right: 1px solid var(--m-hairline-soft);
  background: radial-gradient(560px 440px at 90% 6%, rgba(249, 66, 57, .03), transparent 70%), linear-gradient(180deg, #fffcfc 0%, #ffffff 72%); }
.a-login-brand::after { display: none; }
.a-login-brand > :not(.lx-art) { position: relative; z-index: 1; }
.a-login-brand .a-logo em { background: #fff; border: 1px solid var(--m-primary-200); color: var(--m-primary-deep); }
.a-login-dark .a-login-brand .a-logo em { background: #222222; border-color: #222222; color: #fff; }
.a-login-hero { max-width: 520px; padding-bottom: 8px; }
.a-eyebrow { margin: 0 0 18px; font-size: 12px; font-weight: 800; letter-spacing: .2em; color: var(--m-primary); opacity: 1; }
.a-login-hero h2 { font-size: clamp(30px, 3.1vw, 46px); font-weight: 800; line-height: 1.22; letter-spacing: -0.03em; color: #222222; word-break: keep-all; }
.a-login-hero h2 em { font-style: normal; color: var(--m-primary); }
.a-login-hero p { margin: 18px 0 0; max-width: 440px; font-size: 15px; line-height: 1.75; color: var(--m-steel); }
.a-login-foot { flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--m-hairline-soft); font-size: 12px; color: var(--m-stone); }
.a-login-foot > span { white-space: nowrap; }
.a-login-home { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; border-radius: 10px; border: 1px solid var(--m-primary-200); background: #fff; color: var(--m-primary-deep);
  font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); transition: background-color .15s, border-color .15s, color .15s; }
.a-login-home:hover { background: var(--m-primary); border-color: var(--m-primary); color: #fff; }
.a-login-home .icon:last-child { transition: transform .15s; }
.a-login-home:hover .icon:last-child { transform: translateX(3px); }
.a-login-panel { position: relative; }
.a-login-topright { position: absolute; top: 20px; right: 24px; display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; color: var(--m-charcoal); }
.a-login-stack { width: 100%; max-width: 440px; display: grid; gap: 16px; }
.a-login-card { max-width: none; padding: 36px 36px 28px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); background: var(--m-canvas); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .04); gap: 16px; }
.a-login-card h1 { text-align: center; font-size: 28px; font-weight: 800; }
.a-login-card > p.a-muted { margin: -10px 0 4px; }
.a-center { text-align: center; }
.a-login-label { margin: 0 0 -6px; text-align: center; font-size: 15px; font-weight: 900; letter-spacing: 0; color: var(--m-primary); }
.a-input-icon { position: relative; }
.a-input-icon > .icon { position: absolute; left: 12px; top: 50%; translate: 0 -50%; color: var(--m-stone); pointer-events: none; }
.a-input-icon .a-input { padding-left: 38px; }
.a-input-icon .a-input:focus { padding-left: 37px; }
.a-eye { position: absolute; right: 6px; top: 50%; translate: 0 -50%; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--m-stone); }
.a-eye:hover { background: var(--m-surface); color: var(--m-ink); }
.a-field-note { justify-self: end; font-size: 12px; font-weight: 700; color: var(--m-primary); }
.a-login-help { margin: 0; text-align: center; font-size: 12px; font-weight: 600; color: var(--m-primary); }
.a-login-alt { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); background: var(--m-canvas); font-size: 14px; font-weight: 700; color: var(--m-ink); text-decoration: none; box-shadow: 0 10px 24px -18px rgba(0, 0, 0, .32); }
.a-login-alt:hover { border-color: var(--m-ink-deep); }
@media (max-width: 1023px) {
  .a-login-brand { padding: 24px 20px 0; min-height: 500px; }
  .a-login-hero { padding-top: 110px; }
  .a-login-topright { position: static; justify-content: flex-end; margin-bottom: 16px; }
  .a-login-panel { flex-direction: column; }
  .a-login-card { padding: 28px 20px 22px; }
}
.a-format { margin: 0; padding: 12px 14px; border-radius: var(--m-r-lg); background: var(--m-surface); font-size: 13px; line-height: 1.7; color: var(--m-charcoal); white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.a-q-shots { margin: 0 0 12px 48px; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
@media (max-width: 720px) { .a-q-shots { margin-left: 0; } }

/* ===== v5: 첨부 자료 편집 · 일괄 검수 ===== */
.a-att-list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.a-att-list li { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-lg); }
.a-att-ext { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; background: var(--m-primary-soft); color: var(--m-primary-deep); font-size: 11px; font-weight: 800; }
.a-att-name { flex: 1; min-width: 0; display: grid; font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.a-att-name small { font-size: 12px; font-weight: 500; color: var(--m-steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-att-empty { margin: 0 0 10px; }
.a-att-add { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.a-att-add label { cursor: pointer; }
.a-att-link { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 6px; }
.a-att-link .a-input { width: 100%; }
.a-rev-bulk { position: sticky; top: calc(var(--m-top) + 8px); z-index: 5; }

/* ===== v5: 모바일 — 표를 카드로, 한 화면에 읽히게 ===== */
@media (max-width: 720px) {
  .a-main { padding: 18px 12px 80px; }
  .a-page { gap: 12px; }
  .a-head { align-items: stretch; flex-direction: column; gap: 12px; }
  .a-head h1 { font-size: 22px; }
  .a-head p { font-size: 14px; }
  .a-head-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }
  .a-head-actions .a-btn { width: 100%; }
  .a-card { padding: 16px 14px; border-radius: 14px; }
  .a-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .a-kpi { padding: 14px; }
  .a-toolbar { flex-direction: column; align-items: stretch; gap: 10px; margin-bottom: 12px; }
  .a-tabs { flex-wrap: nowrap; overflow-x: auto; margin: 0 -14px; padding: 2px 14px; scrollbar-width: none; }
  .a-tabs::-webkit-scrollbar { display: none; }
  .a-tab { flex: none; min-height: 34px; padding: 4px 14px; font-size: 13px; }
  .a-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a-filters > * { width: 100% !important; min-width: 0; }
  .a-filters .a-search { grid-column: 1 / -1; }
  .a-input.a-sm { width: 100%; }
  .a-bulk { gap: 8px; padding: 10px 12px; }
  .a-bulk .a-check { flex: 1 0 auto; }
  .a-bulk .a-muted { flex: 0 0 auto; }
  .a-bulk .a-btn { flex: 1 1 40%; }
  .a-rev-bulk { top: 70px; }

  .a-table-wrap { margin: 0; padding: 0; overflow: visible; }
  .a-table, .a-table tbody { display: block; width: 100%; }
  .a-table thead { display: none; }
  .a-table tr { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; padding: 14px; margin-bottom: 10px; border: 1px solid var(--m-hairline-soft); border-radius: 14px; background: var(--m-canvas); }
  .a-table tr:last-child { margin-bottom: 0; }
  .a-table tr.clickable:hover td { background: transparent; }
  .a-table td { display: block; min-width: 0; padding: 0; border: 0; font-size: 14px; overflow-wrap: anywhere; }
  .a-table td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 11px; font-weight: 700; color: var(--m-stone); }
  .a-table td[data-label=""]::before { display: none; }
  .a-table td.cell-main { grid-column: 1 / -1; padding-right: 36px; font-size: 16px; }
  .a-table td.cell-main::before { display: none; }
  .a-table td.cell-main .a-name, .a-table td.cell-main b { font-size: 16px; }
  .a-table td.w-check { position: absolute; top: 12px; right: 12px; width: auto; }
  .a-table td.w-check input { width: 22px; height: 22px; }
  .a-table td.right { grid-column: 1 / -1; text-align: left; padding-top: 6px; border-top: 1px solid var(--m-hairline-soft); }
  .a-table td.right::before { display: none; }
  .a-table td.right .a-row-actions { justify-content: stretch; }
  .a-table td.right .a-row-actions .a-btn { flex: 1; min-height: 38px; }
  .a-table .a-bar { width: calc(100% - 50px); }
  .a-table td.num { white-space: normal; }
  /* 진행 현황 표: 주차 칸을 작게 여러 개 */
  .a-prog-table tr { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .a-prog-table td:nth-last-child(-n+2) { grid-column: span 5; }
  .a-prog-table td:nth-last-child(2) { display: none; }
  .a-q-head { flex-wrap: wrap; }
  .a-att-link { grid-template-columns: 1fr; }
  .a-modal-backdrop { align-items: end; padding: 0; }
  .a-modal, .a-modal.md, .a-modal.lg { max-width: none; border-radius: 20px 20px 0 0; max-height: 92dvh; }
  .a-modal-body { padding: 14px 18px; }
  .a-modal-actions { padding: 12px 18px calc(14px + env(safe-area-inset-bottom, 0px)); }
  .a-modal-actions .a-btn { flex: 1; }
  .a-modal-actions .a-spacer { display: none; }
  .a-cohort-stats b { font-size: 18px; }
  .a-weeks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===== v6: 마스터 — 같은 여기어때 레드, 머리띠의 ‘마스터 관리자’만 차콜 배지 ===== */
body[data-master="1"] .a-logo-role { padding: 2px 10px; border-radius: 8px; background: #222222; color: #fff; font-size: 14px; }

/* 수강생 화면 색상 고르기 */
.a-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.a-swatch { position: relative; display: grid; justify-items: center; gap: 6px; padding: 10px 6px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); cursor: pointer; }
.a-swatch input { position: absolute; opacity: 0; pointer-events: none; }
.a-swatch .sw { width: 40px; height: 40px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 6px var(--swbg); display: grid; place-items: center; }
.a-swatch .sw i { width: 10px; height: 10px; border-radius: 50%; background: var(--swd); opacity: 0; }
.a-swatch b { font-size: 12px; font-weight: 700; color: var(--m-charcoal); }
.a-swatch:has(input:checked) { border: 2px solid var(--m-ink-deep); padding: 9px 5px; }
.a-swatch input:checked + .sw i { opacity: 1; }
.a-swatch input:focus-visible + .sw { outline: 3px solid var(--m-fb); outline-offset: 2px; }
.a-theme-preview { display: grid; grid-template-columns: 1fr 1.3fr; gap: 0; margin-top: 12px; border-radius: var(--m-r-xl); overflow: hidden; border: 1px solid var(--m-hairline-soft); }
.tp-login { position: relative; display: grid; align-content: end; gap: 4px; min-height: 150px; padding: 16px; background: linear-gradient(160deg, var(--bg1), var(--bg2)); color: #fff; }
.tp-eyebrow { font-size: 10px; font-weight: 800; letter-spacing: .14em; color: var(--ac, var(--p)); }
.tp-login b { font-size: 18px; line-height: 1.15; font-weight: 900; }
.tp-login em { font-style: normal; color: var(--ac, var(--p)); }
.tp-tile { position: absolute; right: 14px; top: 14px; width: 40px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: rgba(255, 255, 255, .12); color: var(--aa, var(--pa)); }
.tp-app { display: grid; align-content: center; gap: 8px; padding: 14px; background: #f5f5f5; }
.tp-nav { display: flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 10px; font-size: 12px; font-weight: 700; color: #474747; }
.tp-nav.on { background: var(--pp); color: var(--pd); }
.tp-bar { height: 6px; border-radius: 9px; background: #e6e6e6; overflow: hidden; }
.tp-bar i { display: block; width: 62%; height: 100%; background: var(--p); }
.tp-btn { padding: 8px 10px; border-radius: 99px; background: var(--p); color: var(--po, var(--pd)); font-size: 12px; font-weight: 800; text-align: center; }

/* 메뉴 구성 */
.a-menu-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.a-menu-top select { width: auto; min-width: 240px; flex: 1; max-width: 420px; }
.a-menu-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.a-menu-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.a-menu-row { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 8px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); background: var(--m-canvas); }
.a-menu-list.off .a-menu-row { background: var(--m-surface); border-style: dashed; }
.a-menu-move { display: grid; gap: 0; }
.a-menu-move .a-icon-btn.sm { width: 26px; height: 22px; border-radius: 6px; }
.a-menu-ico { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: var(--m-primary-soft); color: var(--m-primary-deep); }
.a-menu-main { flex: 1; min-width: 0; display: grid; gap: 4px; }
.a-menu-main b { font-size: 15px; }
.a-menu-main small { font-size: 12px; color: var(--m-steel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-menu-label { font-weight: 700; }
.a-pm { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; font-weight: 800; }
.a-pm.minus { background: var(--m-critical-soft); color: var(--m-critical-strong); }
.a-pm.minus:hover { background: var(--m-critical); color: #fff; }
.a-pm.plus { background: var(--m-primary); color: #fff; }
.a-pm.plus:hover { background: var(--m-primary-deep); }
.a-pm.locked { background: var(--m-surface); color: var(--m-stone); }
.a-lib-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.a-chip-toggle { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 100px; border: 1px dashed var(--m-hairline); font-size: 12px; font-weight: 700; color: var(--m-steel); }
.a-chip-toggle.on { border-style: solid; border-color: var(--m-primary); background: var(--m-primary-soft); color: var(--m-primary-deep); }
.a-sidebar-preview { list-style: none; margin: 0; padding: 10px; display: grid; gap: 2px; border-radius: var(--m-r-xl); background: #fff; border: 1px solid var(--m-hairline-soft); }
.a-sidebar-preview li { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 12px; font-size: 14px; font-weight: 600; color: #0e0f0c; }
.a-sidebar-preview li.on { background: var(--p); color: var(--pd); font-weight: 800; }
.a-icon-pick { display: flex; flex-wrap: wrap; gap: 6px; }
.a-icon-pick input { position: absolute; opacity: 0; pointer-events: none; }
.a-icon-pick span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--m-hairline); color: var(--m-charcoal); cursor: pointer; }
.a-icon-pick input:checked + span { border: 2px solid var(--m-primary); background: var(--m-primary-soft); color: var(--m-primary-deep); }
.a-flags { display: flex; flex-wrap: wrap; gap: 4px; }
.a-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; word-break: break-all; }
.a-ann { display: flex; gap: 12px; align-items: flex-start; padding: 14px 18px; border-radius: var(--m-r-xl); background: linear-gradient(90deg, #fff0ee 0%, #fff8f6 100%); border: 1px solid #fde0dc; color: var(--m-ink); }
.a-ann > .icon { margin-top: 3px; color: var(--m-primary); }
.a-ann-list { flex: 1; min-width: 0; display: grid; gap: 6px; }
.a-ann details summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.a-ann details summary::-webkit-details-marker { display: none; }
.a-ann summary b { font-size: 15px; }
.a-ann summary small { font-size: 12px; color: var(--m-stone); }
.a-ann p { margin: 6px 0 2px; font-size: 14px; line-height: 1.6; color: var(--m-charcoal); white-space: pre-line; }
@media (max-width: 1100px) { .a-menu-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 720px) {
  .a-menu-top select { min-width: 0; max-width: none; width: 100%; }
  .a-menu-top .a-btn { width: 100%; }
  .a-menu-row { gap: 8px; padding: 8px; }
  .a-swatches { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .a-theme-preview { grid-template-columns: 1fr; }
}

/* 새 강사 플랫폼: 처음 내용 고르기 */
.a-radio-cards { display: grid; gap: 8px; }
.a-radio-cards label { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-xl); cursor: pointer; }
.a-radio-cards label:has(input:checked) { border: 2px solid var(--m-primary); padding: 11px 13px; background: var(--m-primary-soft); }
.a-radio-cards input { margin-top: 3px; accent-color: var(--m-primary); }
.a-radio-cards span { display: grid; gap: 2px; }
.a-radio-cards b { font-size: 14px; }
.a-radio-cards small { font-size: 12px; color: var(--m-steel); line-height: 1.5; }

/* 홍보 랜딩페이지 편집 */
.a-lp-top { display: grid; gap: 12px; }
.a-lp-url { display: flex; gap: 8px; align-items: center; }
.a-lp-url .a-input { flex: 1; min-width: 0; }
.a-lp-dirty { margin: 0; font-size: 13px; font-weight: 700; color: #c25e00; display: flex; align-items: center; gap: 6px; }
.a-lp-sec { padding: 0; overflow: hidden; }
.a-lp-sec > summary { display: flex; align-items: center; gap: 10px; padding: 14px 18px; cursor: pointer; list-style: none; }
.a-lp-sec > summary::-webkit-details-marker { display: none; }
.a-lp-sec > summary b { flex: 1; min-width: 0; font-size: 16px; }
.a-lp-sec.off > summary b { color: var(--m-steel); }
.a-lp-move { display: grid; }
.a-lp-move .a-icon-btn.sm { width: 26px; height: 20px; border-radius: 6px; }
.a-lp-chev { color: var(--m-steel); transition: transform .2s; }
.a-lp-sec[open] .a-lp-chev { transform: rotate(180deg); }
.a-lp-body { display: grid; gap: 14px; padding: 4px 18px 20px; border-top: 1px solid var(--m-hairline-soft); padding-top: 16px; }
.a-switch { position: relative; flex: none; width: 44px; height: 26px; border-radius: 99px; background: #dcdcdc; transition: background .15s; }
.a-switch i { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: left .15s; }
.a-switch.on { background: var(--m-primary); }
.a-switch.on i { left: 21px; }
.a-lp-rows { display: grid; gap: 8px; justify-items: start; }
.a-lp-row { width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) auto; gap: 8px; align-items: start; padding: 10px; border: 1px solid var(--m-hairline-soft); border-radius: var(--m-r-lg, 12px); background: var(--m-surface, #f5f5f5); }
.a-lp-row textarea { grid-column: 1 / -2; min-height: 64px; }
.a-lp-row .a-check { align-self: center; }
.a-lp-row-tools { display: flex; gap: 4px; grid-column: -2 / -1; grid-row: 1; }
.a-lp-img { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.a-lp-img img { width: 120px; height: 90px; object-fit: cover; border-radius: 10px; border: 1px solid var(--m-hairline-soft); }
.a-lp-savebar { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 16px; padding: 12px 16px; border-radius: var(--m-r-xl); background: rgba(255, 255, 255, .96); border: 1px solid var(--m-hairline-soft); box-shadow: 0 -8px 24px -16px rgba(0, 0, 0, .25); }
.a-lp-savebar .a-muted { margin-right: auto; font-size: 13px; }
@media (max-width: 720px) {
  .a-lp-row { grid-template-columns: minmax(0, 1fr) auto; }
  .a-lp-row > input, .a-lp-row > textarea, .a-lp-row > .a-check { grid-column: 1 / 2; }
  .a-lp-row-tools { grid-column: 2 / 3; flex-direction: column; }
  .a-lp-sec > summary { padding: 12px 14px; gap: 8px; }
  .a-lp-sec > summary .a-pill { display: none; }
  .a-lp-body { padding: 14px; }
}

/* 커리큘럼 고르기 */
.a-cur-bar { display: grid; gap: 10px; border: 1px solid var(--m-primary); background: var(--m-primary-soft); }
.a-cur-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.a-cur-top select { flex: 1; min-width: 220px; max-width: 520px; background: #fff; }
.a-cur-info { margin: 0; font-size: 13px; color: var(--m-charcoal); line-height: 1.6; }
.a-cur-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 99px; background: var(--m-surface, #f5f5f5); font-size: 12px; font-weight: 700; color: var(--m-charcoal); }
@media (max-width: 720px) { .a-cur-top select { min-width: 0; width: 100%; max-width: none; } .a-cur-top .a-label { width: 100%; } }

/* 운영사 doogo 로고 */
.adm .doogo-logo { display: inline-block; height: 18px; width: auto; vertical-align: middle; }
.adm .powered { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: var(--m-steel); }
.adm .powered .doogo-logo { height: 15px; }
.a-logo-doogo .doogo-logo { height: 26px; }
.a-logo-mark .doogo-logo { height: 22px; }
.a-login-label { display: flex; align-items: center; justify-content: center; gap: 6px; }
.a-login-label .doogo-logo { height: 20px; }
.a-side-foot { display: grid; gap: 12px; justify-items: start; }

/* 공개 스위치 */
.a-pub { display: flex; align-items: center; gap: 12px; }
.a-pub b { display: block; font-size: 15px; color: var(--m-steel); }
.a-pub b.on { color: #01a484; }
.a-pub small { font-size: 12px; color: var(--m-steel); }
.a-switch-lg { width: 54px; height: 30px; }
.a-switch-lg i { width: 24px; height: 24px; }
.a-switch-lg.on i { left: 27px; }
.a-switch.on.a-switch-lg { background: #01a484; }

/* 무료강의 페이지 편집: doogo 관리자처럼 칸별 탭 */
.a-fc-top { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px 24px; }
.a-fc-top .a-lp-dirty { grid-column: 1 / -1; }
.a-fc-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 16px; align-items: start; }
.a-fc-tabs { position: sticky; top: 80px; display: grid; gap: 6px; }
.a-fc-tab { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: var(--m-canvas, #fff); border: 1px solid var(--m-hairline-soft); text-align: left; cursor: pointer; }
.a-fc-tab b { display: block; font-size: 14px; color: var(--m-ink, #222222); }
.a-fc-tab small { display: block; font-size: 12px; color: var(--m-steel); }
.a-fc-tab.on { border: 2px solid var(--m-primary); padding: 9px 11px; background: var(--m-primary-soft); }
.a-fc-tab.off small { color: #c25e00; }
.a-fc-ic { flex: none; width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--m-surface, #f5f5f5); color: var(--m-primary-deep); }
.a-fc-tab.on .a-fc-ic { background: var(--m-primary); color: #fff; }
.a-fc-tab .a-count { font-style: normal; margin-left: 4px; }
.a-fc-panel { display: grid; gap: 16px; }
.a-fc-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--m-hairline-soft); }
.a-fc-eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .04em; color: var(--m-primary); }
.a-fc-panel-head h2 { margin: 4px 0 0; font-size: 22px; }
.a-fc-show { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--m-steel); }
.a-fc-body { display: grid; gap: 14px; }
.a-fc-cards { display: grid; gap: 12px; justify-items: start; }
.a-fc-card { width: 100%; display: grid; gap: 10px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--m-hairline-soft); background: var(--m-surface, #f5f5f5); }
.a-fc-card-head { display: flex; justify-content: space-between; align-items: center; }
.a-fc-card-head b { font-size: 14px; }
.a-seg-pick { display: flex; flex-wrap: wrap; gap: 8px; }
.a-seg-pick label { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 99px; border: 1px solid var(--m-hairline-soft); background: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.a-seg-pick label:has(input:checked) { border: 2px solid var(--m-primary); padding: 6px 11px; }
.a-seg-pick input { position: absolute; opacity: 0; pointer-events: none; }
.a-swatch-dot { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .15); }
.a-sw-blue { background: #0e0f0c; } .a-sw-cyan { background: var(--swp, #9fe870); } .a-sw-ice { background: var(--swpale, #e2f6d5); }
.a-more { border-radius: 14px; border: 1px dashed var(--m-hairline-soft); }
.a-more > summary { display: flex; align-items: center; gap: 6px; padding: 10px 14px; font-size: 13px; font-weight: 700; color: var(--m-steel); cursor: pointer; list-style: none; }
.a-more > summary::-webkit-details-marker { display: none; }
.a-more-body { display: grid; gap: 14px; padding: 4px 14px 16px; }
@media (max-width: 900px) {
  .a-fc-top { grid-template-columns: minmax(0, 1fr); }
  .a-fc-layout { grid-template-columns: minmax(0, 1fr); }
  .a-fc-tabs { position: static; display: flex; overflow-x: auto; gap: 6px; padding-bottom: 4px; }
  .a-fc-tab { flex: none; }
  .a-fc-tab small { display: none; }
}
/* 로그인 카드 위 doogo 로고 2배 (강사 · 마스터) */
.a-login-label { gap: 10px; margin-bottom: 14px; }
.a-login-label .doogo-logo { height: 30px; }

/* ===== v6: 본문 서식 버튼 · 공지 사진 · 커리큘럼 상세 ===== */
.a-rich-bar { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.a-rich-btn { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border: 1px solid var(--a-line, #e6e6e6); border-radius: 8px; background: #fff; font: inherit; font-size: 12px; font-weight: 700; color: inherit; cursor: pointer; }
.a-rich-btn:hover { background: #f5f5f5; }
.a-rich-input { font-size: 14px; line-height: 1.7; }
.a-img-list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.a-img-list li { position: relative; border-radius: 10px; overflow: hidden; background: #f5f5f5; aspect-ratio: 4 / 3; }
.a-img-list img { width: 100%; height: 100%; object-fit: cover; display: block; }
.a-img-no { position: absolute; left: 6px; top: 6px; padding: 1px 8px; border-radius: 999px; background: rgba(14, 15, 12, .75); color: #fff; font-size: 11px; font-weight: 800; }
.a-img-tools { position: absolute; right: 4px; bottom: 4px; display: flex; gap: 2px; padding: 2px; border-radius: 8px; background: rgba(255, 255, 255, .92); }
.a-cw-info { display: grid; gap: 6px; margin-top: 4px; padding: 12px 14px; border-radius: 12px; background: #f5f5f5; font-size: 13px; line-height: 1.6; }
.a-cw-info p { margin: 0; }
.a-cw-info b { margin-right: 8px; }
.a-cw-empty { margin: 4px 0 0; font-size: 13px; color: #c25e00; }

/* ===== v8: 성장 단계 ===== */
.a-lv { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; background: #f5f5f5; font-size: 12px; font-weight: 800; color: #0e0f0c; white-space: nowrap; }
.a-lv small { font-weight: 600; color: #999999; }
.a-lv .icon { width: 13px; height: 13px; }
.a-lv.lv-leaf { background: #e8f6dc; }
.a-lv.lv-branch { background: #d7f0c2; }
.a-lv.lv-tree { background: #b9e59a; }
.a-lv.lv-forest { background: #163300; color: #9fe870; }
.a-lv.lv-forest small { color: #c5edab; }
.a-lvboard { display: grid; gap: 10px; }
.a-lvrow { display: grid; grid-template-columns: 96px 1fr 48px; align-items: center; gap: 6px 12px; }
.a-lvbar { height: 10px; border-radius: 999px; background: #f5f5f5; overflow: hidden; }
.a-lvbar span { display: block; height: 100%; border-radius: inherit; background: #9fe870; min-width: 2px; }
.a-lvrow b { text-align: right; font-size: 13px; }
.a-lvwho { grid-column: 2 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.a-lvchip { border: 1px solid #e6e6e6; background: #fff; border-radius: 999px; padding: 3px 10px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.a-lvchip small { color: #999999; font-weight: 600; }
.a-lvchip:hover { background: #f5f5f5; }
.a-lvmaster { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.a-lvm { padding: 16px; border-radius: 14px; background: #fafafa; border: 1px solid #e6e6e6; display: grid; gap: 12px; }
.a-lvm-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.a-lvm-top { margin: 0; font-size: 12px; color: #474747; }
.a-detail-stats small { display: block; font-size: 11px; color: #999999; margin-top: 4px; }
.a-ql-swatch { width: 16px; height: 16px; border-radius: 5px; flex: none; box-shadow: inset 0 0 0 1px rgba(0,0,0,.1); }

/* ===== v10: 모바일 최적화 (아이폰 입력 확대 방지 · 터치 영역 · 카드 머리 줄바꿈) ===== */
@media (max-width: 720px) {
  .a-input, .a-input.a-sm, select.a-input { font-size: 16px; }
  .a-check { min-height: 40px; }
  .a-check input { width: 20px; height: 20px; }
  .a-link { min-height: 36px; }
  .a-lvchip { min-height: 32px; padding: 4px 12px; }
  .a-name { min-height: 36px; padding: 6px 0; }
  .a-icon-btn.sm { width: 36px; height: 36px; }
  .a-switch { transform: scale(1.12); transform-origin: right center; }
  .stu-pick, .rev-pick { width: 24px !important; height: 24px !important; }
  .a-card-head > .a-grow, .a-card-head > div.a-grow { flex: 1 1 calc(100% - 64px); min-width: 0; }
  .a-card-head > .a-row-actions { margin-left: auto; }
  .a-q-head { flex-wrap: wrap; }
  .a-q-head > div:not(.a-row-actions) { flex: 1 1 calc(100% - 52px); min-width: 0; }
}
@media (max-width: 720px) {
  .a-menu-move .a-icon-btn.sm, .a-lp-move .a-icon-btn.sm { width: 36px; height: 30px; }
  .a-side-foot a { min-height: 40px; display: inline-flex; align-items: center; }
}
@media (max-width: 720px) { .a-radio-cards input { width: 20px; height: 20px; flex: none; } }
.a-ch-ic { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; }
/* 모바일 진행 현황 카드: 성장 단계는 한 줄 전체 (좁은 주차 칸에 끼어 옆 칸과 겹치지 않게) */
@media (max-width: 720px) {
  .a-prog-table td.cell-lv { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; }
  .a-prog-table td.cell-lv::before { margin: 0; }
  .a-table td .a-lv { max-width: 100%; }
}

/* ===== v13: 코치 계정 (로그인 틸 테마 · 코치 관리 · 코치 대시보드) ===== */
.a-login .a-seg { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.a-login .a-seg button { padding: 0 6px; white-space: nowrap; }
@media (max-width: 420px) { .a-login .a-seg button { font-size: 13px; gap: 4px; } .a-login .a-seg button .icon { width: 14px; height: 14px; } }
.a-login-green .a-login-brand { background: radial-gradient(560px 440px at 90% 6%, rgba(1, 164, 132, .05), transparent 70%), linear-gradient(180deg, #f9fdfb 0%, #ffffff 72%); }
.a-login-green .a-login-hero h2 em { color: #01a484; }
.a-login-green .a-login-brand .a-logo em { border-color: #b3e4d8; color: #00866b; }
.a-login-green .a-login-home { border-color: #b3e4d8; color: #00866b; }
.a-login-green .a-login-home:hover { background: #01a484; border-color: #01a484; color: #fff; }
.a-login-green .a-eyebrow { color: #01a484; }
.a-login-green .a-login-role, .a-login-green .a-field-note, .a-login-green .a-login-help { color: #01a484; }
.a-login-green .a-btn-primary { background: #01a484; }
.a-login-green .a-btn-primary:hover { background: #00866b; }
.a-login-green .a-demo { background: #e7f7f3; color: #00664f; }
.a-login-green .a-seg button.on { color: #00866b; }

.a-coach-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.a-coach-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 6px 14px; border-radius: 100px; border: 1px solid #b3e4d8; background: #e7f7f3; color: #00664f; font-size: 14px; font-weight: 700; text-decoration: none; }
.a-coach-chip:hover { border-color: #01a484; background: #d4f1ea; }
.a-coach-menus .a-card-head h2 { display: inline-flex; align-items: center; gap: 6px; }
.a-coach-list li { align-items: flex-start; }
.a-coach-av { background: #d4f1ea; color: #00866b; }
.a-coach-list .a-item-main { display: grid; gap: 4px; min-width: 0; }
.a-coach-perms { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.a-perm { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 100px; background: #e7f7f3; border: 1px solid #c2eae0; color: #00664f; font-size: 12px; font-weight: 700; line-height: 18px; white-space: nowrap; }
.a-coach-stats { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12px; color: var(--m-slate); }
.a-coach-stats b { color: var(--m-ink); }
.a-perm-presets { display: flex; flex-wrap: wrap; gap: 6px; }
.a-perm-group { margin: 0; padding: 12px 14px 10px; border: 1px solid var(--m-hairline-soft); border-radius: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 14px; }
.a-perm-group legend { padding: 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .02em; color: #00866b; }
.a-perm-group .a-check { align-items: flex-start; padding: 4px 0; }
.a-perm-group .a-check input { margin-top: 1px; accent-color: #01a484; }
.a-perm-group .a-check small { display: block; font-weight: 600; font-size: 12px; line-height: 1.4; }
.a-coach-note { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: #e7f7f3; color: #00664f; font-size: 13px; line-height: 1.5; }
.a-coach-note .icon { flex: none; margin-top: 2px; }
.a-by { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #00866b; }
body[data-coach="1"] .a-logo-role { color: #00866b; }
@media (max-width: 720px) {
  .a-perm-group { grid-template-columns: 1fr; }
  .a-coach-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: 12px; row-gap: 10px; }
  .a-coach-list li > .a-avatar { align-self: start; }
  .a-items.a-coach-list li .a-item-main { grid-column: 2 / -1; flex-basis: auto; }
  .a-coach-list li > .a-pill { grid-column: 2; justify-self: start; }
  .a-coach-list li > .a-row-actions { grid-column: 3; }
}
.a-coach-list .a-item-main small { white-space: normal; overflow: visible; text-overflow: clip; }

/* 강사 프로필 사진 (기본 정보) */
.a-brand-photo { display: flex; align-items: flex-end; gap: 16px; }
.a-brand-photo-box { flex: none; width: 120px; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; background: #f5f5f5; border: 1px solid #e6e6e6; display: grid; place-items: center; }
.a-brand-photo-box img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.a-brand-photo-box span { display: grid; justify-items: center; gap: 6px; font-size: 12px; color: #707070; }
.a-brand-photo-ctl { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }

/* 마스터: 강사 입점 문의 */
.a-inq { padding: 18px; border: 1px solid #e6e6e6; border-radius: 14px; background: #fff; display: grid; gap: 14px; }
.a-inq-head { display: flex; align-items: center; gap: 12px; }
.a-inq-head > div { flex: 1; min-width: 0; }
.a-inq-head b { display: block; font-size: 16px; }
.a-inq-head small { color: #707070; font-size: 12.5px; }
.a-inq-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin: 0; }
.a-inq-info div { min-width: 0; }
.a-inq-info dt { font-size: 12px; font-weight: 700; color: #707070; }
.a-inq-info dd { margin: 2px 0 0; font-size: 14px; overflow-wrap: anywhere; }
.a-inq-block { padding: 12px 14px; border-radius: 10px; background: #fafafa; }
.a-inq-block b { display: block; font-size: 12.5px; color: #474747; margin-bottom: 4px; }
.a-inq-block p { margin: 0; font-size: 14px; line-height: 1.6; white-space: pre-wrap; }
.a-inq-ctl { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: start; }
.a-inq-st { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #474747; }
.a-inq-alert { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; padding: 14px 16px; border-radius: 12px; background: #fff5f5; color: #ea2013; text-decoration: none; border: 1px solid #fedfde; }
.a-inq-alert span { flex: 1; color: #5c5c5c; font-size: 13.5px; }
@media (max-width: 720px) {
  .a-inq-info { grid-template-columns: 1fr; }
  .a-inq-ctl { grid-template-columns: 1fr; }
}

/* 마스터 → 첫 화면 · 사업자 정보 */
.a-site-form { display: grid; gap: 16px; }
.a-site-form .a-card { margin: 0; }
.a-site-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.a-site-grid .a-span2 { grid-column: 1 / -1; }
.a-site-save { display: flex; justify-content: flex-end; }
@media (max-width: 720px) {
  .a-site-grid { grid-template-columns: 1fr; }
  .a-site-save .a-btn { width: 100%; justify-content: center; }
}

/* ---------- 기수 이용료 신청 · 매출 (강사센터 ‘다음 기수 신청’ · 마스터 ‘기수 신청 · 매출’) ---------- */
.a-kpis-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.a-kpis-5 .a-kpi b { font-size: 24px; }
.a-sub-h { display: flex; align-items: center; gap: 10px; margin: 24px 0 12px; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.a-sub-h .a-link { margin-left: auto; font-size: 13px; }
.a-btabs { margin: 16px 0; }
.a-bill-alert { background: var(--m-primary-soft); color: var(--m-primary-deep); border-color: #fedfde; }
.a-bill-alert span { color: var(--m-primary-deep); opacity: .85; }
.a-bill { padding: 18px; border: 1px solid #e6e6e6; border-radius: 14px; background: #fff; display: grid; gap: 14px; }
.a-bill.off { background: #fafafa; opacity: .75; }
.a-bill .a-inq-head .a-avatar .icon { width: 18px; height: 18px; }
.a-bill-info { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.a-bill-mm { background: #ffe7d6; }
.a-bill-act { flex-wrap: wrap; }
/* 처리 단계: 신청 → 입금 → 계산서 → 기수 오픈 */
.a-bsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; counter-reset: s; }
.a-bsteps li { position: relative; display: flex; align-items: center; gap: 8px; padding: 0 8px 0 0; min-width: 0; }
.a-bsteps li::after { content: ""; flex: 1; height: 2px; margin-left: 4px; background: var(--m-hairline-soft); border-radius: 2px; min-width: 8px; }
.a-bsteps li:last-child::after { display: none; }
.a-bsteps li.done::after { background: var(--m-primary); }
.a-bsteps i { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 12px; font-weight: 700; background: var(--m-surface); color: var(--m-steel); }
.a-bsteps li.done i { background: var(--m-primary); color: #fff; }
.a-bsteps i .icon { width: 14px; height: 14px; stroke-width: 2.6; }
.a-bsteps span { display: grid; min-width: 0; }
.a-bsteps b { font-size: 13px; white-space: nowrap; }
.a-bsteps small { font-size: 12px; color: var(--m-steel); white-space: nowrap; }
.a-bsteps.off { filter: grayscale(1); opacity: .6; }
/* 강사 안내 */
.a-bflow { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.a-bflow li { display: grid; gap: 4px; padding: 14px; border-radius: 12px; background: var(--m-surface); }
.a-bflow-ic { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--m-primary); color: #fff; margin-bottom: 4px; }
.a-bflow b { font-size: 14px; }
.a-bflow small { font-size: 13px; color: var(--m-slate); line-height: 1.5; }
.a-bnote { display: grid; gap: 6px; padding: 14px 16px; border-radius: 12px; border: 1px dashed #fb7f79; background: #fff5f5; }
.a-bnote p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--m-charcoal); }
.a-bcalc { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; padding: 12px 14px; border-radius: 12px; background: var(--m-primary-soft); }
.a-bcalc span { font-size: 13px; font-weight: 700; color: var(--m-primary-deep); }
.a-bcalc b { font-size: 20px; letter-spacing: 0; color: var(--m-primary-deep); }
.a-bcalc small { flex-basis: 100%; font-size: 12.5px; color: var(--m-slate); }
.a-fs { margin: 4px 0 0; padding: 14px 16px 16px; border: 1px solid var(--m-hairline-soft); border-radius: 12px; display: grid; gap: 12px; min-width: 0; }
.a-fs legend { padding: 0 6px; font-size: 13px; font-weight: 700; color: var(--m-slate); }
.a-warn-box { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--m-attention-soft); color: var(--m-attention); font-size: 13.5px; font-weight: 600; }
/* 달력 */
.a-cal-head h2 { min-width: 120px; text-align: center; }
.a-cal-head .a-btn { margin-left: 4px; }
.a-cal-sum { margin-left: auto; font-size: 14px; color: var(--m-slate); }
.a-cal-sum b { color: var(--m-ink); }
.a-cal-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: -4px 0 12px; font-size: 12.5px; color: var(--m-slate); }
.a-cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.a-cal-legend i, .a-cal-dots i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.a-cal { border: 1px solid var(--m-hairline-soft); border-radius: 12px; overflow: hidden; }
.a-cal-w { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: var(--m-surface); }
.a-cal-w span { padding: 8px 0; text-align: center; font-size: 12px; font-weight: 700; color: var(--m-steel); }
.a-cal-w span:first-child { color: #f94239; }
.a-cal-w span:last-child { color: #006ce0; }
.a-cal-g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.a-cal-d { display: flex; flex-direction: column; align-items: stretch; gap: 3px; min-height: 104px; min-width: 0; padding: 6px; border: 0; border-top: 1px solid var(--m-hairline-soft); border-left: 1px solid var(--m-hairline-soft); background: #fff; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.a-cal-g > :nth-child(7n + 1) { border-left: 0; }
.a-cal-d.out { background: #fafafa; cursor: default; }
.a-cal-d:not(.out):hover { background: #fff5f5; }
.a-cal-d.on { box-shadow: inset 0 0 0 2px var(--m-primary); }
.a-cal-n { font-size: 13px; font-weight: 700; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; }
.a-cal-d.sun .a-cal-n { color: #f94239; }
.a-cal-d.sat .a-cal-n { color: #006ce0; }
.a-cal-d.today .a-cal-n { background: var(--m-primary); color: #fff; }
.a-cal-ev, .a-cal-tag { display: block; padding: 2px 6px; border-radius: 6px; font-size: 11.5px; font-weight: 700; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.a-cal-more { font-size: 11px; font-weight: 700; color: var(--m-steel); padding-left: 4px; }
.a-cal-dots { display: none; gap: 3px; flex-wrap: wrap; }
.t-start { background: #ffedea; color: #ea2013; }
.t-plan { background: #fff; color: #ea2013; box-shadow: inset 0 0 0 1px #fb7f79; }
.t-req { background: #f5f5f5; color: #474747; }
.t-paid { background: #e7f7f3; color: #00866b; }
.t-inv { background: #efecff; color: #5a43e0; }
.a-cal-legend i.t-plan, .a-cal-dots i.t-plan { box-shadow: inset 0 0 0 2px #fb7f79; }
.a-cal-legend i.t-start, .a-cal-dots i.t-start { background: #f94239; }
.a-cal-legend i.t-req, .a-cal-dots i.t-req { background: #bbbbbb; }
.a-cal-legend i.t-paid, .a-cal-dots i.t-paid { background: #01a484; }
.a-cal-legend i.t-inv, .a-cal-dots i.t-inv { background: #7059fa; }
.a-cal-list li { justify-content: flex-start; }
.a-cal-list li b { font-size: 14px; font-weight: 600; min-width: 0; }
.a-cal-date { flex: none; width: 76px; font-size: 13px; color: var(--m-steel); }
.a-cal-tag { flex: none; }
/* 매출 막대 */
.a-rev-chart { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; align-items: end; height: 190px; margin: 4px 0 18px; padding: 0 2px; }
.a-rev-col { display: grid; grid-template-rows: 18px 1fr 20px; height: 100%; text-align: center; min-width: 0; }
.a-rev-col small { font-size: 11px; color: var(--m-slate); white-space: nowrap; overflow: hidden; }
.a-rev-col b { font-size: 12px; color: var(--m-steel); font-weight: 600; }
.a-rev-col.now b { color: var(--m-primary); font-weight: 800; }
.a-rev-bar { position: relative; display: block; border-radius: 8px 8px 4px 4px; background: var(--m-surface); overflow: hidden; }
.a-rev-bar i { position: absolute; left: 0; right: 0; bottom: 0; border-radius: 8px 8px 0 0; background: linear-gradient(180deg, color-mix(in srgb, var(--m-primary) 55%, #fff), var(--m-primary)); }
.a-rev-col.now .a-rev-bar { box-shadow: inset 0 0 0 2px #fb7f79; }
.a-dim td { color: var(--m-stone); }
.a-rev-total td { background: var(--m-surface); }
@media (max-width: 1100px) {
  .a-kpis-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .a-bflow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a-bill-info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .a-kpis-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a-kpis-5 .a-kpi b { font-size: 20px; }
  .a-bill { padding: 14px; }
  .a-bill-info { grid-template-columns: minmax(0, 1fr); }
  .a-bsteps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 10px; }
  .a-bsteps li::after { display: none; }
  .a-bflow { grid-template-columns: minmax(0, 1fr); }
  .a-bill-act .a-btn { flex: 1 1 auto; }
  .a-cal-head { gap: 4px; }
  .a-cal-head h2 { min-width: 0; font-size: 16px; }
  .a-cal-sum { flex-basis: 100%; margin-left: 0; font-size: 13px; }
  .a-cal-d { min-height: 58px; padding: 4px 3px; align-items: center; }
  .a-cal-d .a-cal-ev, .a-cal-d .a-cal-more { display: none; }
  .a-cal-dots { display: flex; justify-content: center; }
  .a-cal-dots i { width: 6px; height: 6px; border-radius: 50%; }
  .a-cal-n { font-size: 12px; }
  .a-cal-list li { flex-wrap: wrap; gap: 6px 10px; }
  .a-cal-list li b { flex-basis: 100%; }
  .a-rev-chart { height: 150px; gap: 3px; }
  .a-rev-col small { font-size: 9.5px; }
  .a-rev-col b { font-size: 10.5px; }
}

/* ---------- 두고 클래스 로고 (강사센터 · 코치센터 · 마스터) — 모양은 home.css .hm-lock ---------- */
.a-logo .hm-lock { --lh: 26px; }
.a-logo-role { flex: none; padding-left: 12px; border-left: 1px solid var(--m-hairline); font-size: 16px; font-weight: 700; line-height: 22px; white-space: nowrap; color: var(--m-ink); }
.a-logo-doogo .hm-lock { --lh: 34px; }
.a-login-label { align-items: center; color: var(--m-primary); }
.a-login-label .hm-lock { --lh: 28px; }
.a-login-role { padding: 3px 8px; border-radius: 6px; background: var(--m-primary-soft); font-size: 11px; font-weight: 700; font-style: normal; letter-spacing: .06em; }
.a-login-green .a-login-role { background: #e7f7f3; }
@media (max-width: 720px) {
  .a-logo { gap: 8px; min-width: 0; }
  .a-logo .hm-lock { --lh: 22px; }
  .a-logo-role { padding-left: 8px; font-size: 14px; line-height: 18px; }
}

/* ---------- 강사센터 · 마스터 — 흰 바탕 + 아주 옅은 빨강 파스텔 (첫 화면 맨 위와 같은 느낌) ---------- */
body[data-mode="admin"] { background: #fdfbfb; }
.a-main { background: radial-gradient(900px 380px at 100% 0%, rgba(249, 66, 57, .035), transparent 70%); }
.a-card { box-shadow: 0 1px 2px rgba(120, 40, 30, .03); }
.a-side { background: linear-gradient(180deg, #fff 0%, #fffafa 100%); }
/* 숫자 카드: 카드마다 다른 파스텔 (빨강 · 파랑 · 초록 · 보라) — 주의가 필요한 카드(.warn)는 주황 그대로 */
.a-kpis > .a-kpi:nth-child(4n+1) { --tone: #f94239; --tone-wash: #fff3f1; }
.a-kpis > .a-kpi:nth-child(4n+2) { --tone: #1f6fe0; --tone-wash: #f1f6ff; }
.a-kpis > .a-kpi:nth-child(4n+3) { --tone: #0c9b7c; --tone-wash: #eefaf6; }
.a-kpis > .a-kpi:nth-child(4n+4) { --tone: #6c55f0; --tone-wash: #f4f2ff; }
.a-kpi:not(.warn) { background: linear-gradient(160deg, var(--tone-wash, #fff) 0%, #ffffff 65%); }
.a-kpi span { display: inline-flex; align-items: center; gap: 6px; }
.a-kpi span::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--tone, var(--m-primary)); }
.a-kpi.warn span::before { background: var(--m-attention); }
