/* 차세대 안전교육시스템 — 실제 입력 요소·상태 보완 스타일. 색·간격은 KRDS 토큰(tokens.css)만 쓴다(화면마다 새로 정하지 않음). */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
form.inline{display:inline}
input.c-in,select.c-in,textarea.c-in{font:inherit;font-size:var(--fs-b-s);width:100%;box-sizing:border-box;display:block}
select.c-in{appearance:auto;padding-right:8px}
textarea.c-in{height:auto;min-height:96px;padding:10px 14px;line-height:1.5;white-space:normal}
.c-in:focus,.c-btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--krds-primary-50);outline-offset:2px}
.c-in[aria-invalid=true]{border-color:var(--krds-danger-50)}
.c-in[readonly]{background:var(--krds-gray-5);color:var(--krds-gray-70)}
/* 오류 문구 색(지시 069 3절 — axe가 A-19에서 잡았다). `--krds-danger-50`(#DE3412)은 **흰 바탕에서만 4.56:1**이고
   여유가 0.06뿐이라, 회색 바탕과 겹치면 바로 미달이 된다: `.c-callout`(바탕 --krds-gray-5)과 함께 쓴 자리가
   **4.26:1**이었다(v0.1에서도 4.18로 미달 — 새로 생긴 결함이 아니라 전부터 있던 자리다).
   → 오류 문구는 더 진한 빨강 #B0252F로 쓴다(gray-5 6.23 · 흰 6.66 · gray-10 5.44). 이 값은 이 저장소의
   선례다(`components.css`의 `.c-tag.req` 글자색). 토큰 `--krds-danger-50`은 테두리·아이콘 배경 등
   **비텍스트 용도로는 그대로** 둔다(비텍스트 기준은 3:1). */
.lms-err{color:#B0252F;font-size:13px;margin:2px 0 0}
.lms-form-msg{color:#B0252F;margin:8px 0}
button.c-btn{font:inherit;cursor:pointer}
button.c-btn[disabled]{opacity:.55;cursor:not-allowed}
.c-search-mini input{border:0;background:transparent;font:inherit;flex:1;min-width:0;color:inherit}
.c-search-mini button.ic{border:0;cursor:pointer}
.c-gnb button.all{background:none;border:0;font:inherit;cursor:pointer}
button.c-mmenu{border:0;background:none;cursor:pointer}
.lms-allmenu{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;padding:20px 0;border-top:1px solid var(--krds-gray-10)}
.lms-allmenu[hidden]{display:none}
.lms-allmenu h2{font-size:var(--fs-h-xxs);font-weight:700;margin-bottom:8px}
.lms-allmenu a{display:block;padding:4px 0;color:var(--krds-gray-70)}
.lms-mockbar{background:#FFF4D6;color:#5C3D00;font-size:13px;padding:6px 0}
.lms-mockbar.staff{padding:6px 20px}
.lms-mock-tag{display:inline-block;background:#FFF4D6;color:#5C3D00;border:1px solid #E8C46A;border-radius:var(--radius-pill);font-size:12px;padding:1px 8px;margin-left:6px}
.c-check label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.c-check input[type=checkbox],.c-check input[type=radio]{width:18px;height:18px;accent-color:var(--krds-primary-50)}
fieldset.c-field{border:0;padding:0;margin:0 0 12px}
fieldset.c-field legend{font-size:var(--fs-b-s);font-weight:600;margin-bottom:6px}
.lms-dialog{position:fixed;inset:0;background:rgba(30,33,36,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.lms-dialog[hidden]{display:none}
.lms-dialog .box{background:#fff;border-radius:var(--radius-m);padding:24px;width:min(480px,calc(100% - 32px));max-height:90vh;overflow:auto}
.lms-dialog h2{font-size:var(--fs-h-s);font-weight:700;margin-bottom:12px}
.lms-toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);background:var(--krds-gray-90);color:#fff;padding:12px 20px;border-radius:var(--radius-s);opacity:0;pointer-events:none;transition:opacity .2s;z-index:60;max-width:calc(100% - 32px)}
.lms-toast.show{opacity:1}
.lms-toast.err{background:var(--krds-danger-50)}
.lms-toast.mock{background:#5C3D00}
.lms-error-code{color:var(--krds-gray-70);font-size:13px}
/* cp85 시간 제한 안내(D84-07·08)·첨부 올림 진행(D84-02). 글자색은 흰 바탕 대비 4.5:1 이상(--krds-gray-70 · 경고 #B0252F = .lms-err와 같은 값) */
.lms-timer p{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.lms-timer .lms-timer-left{color:var(--krds-gray-70);font-variant-numeric:tabular-nums}
.lms-timer.warn .lms-timer-left,.lms-timer.expired .lms-timer-left{color:#B0252F;font-weight:700}
.lms-timer .lms-timer-msg{color:#B0252F;margin-top:6px;display:block}
.lms-timer .lms-timer-msg[hidden]{display:none}
.lms-session{display:flex;flex-direction:column;align-items:flex-end;font-size:14px;margin:8px 0}
.lms-session p{justify-content:flex-end}
.lms-hold{margin:8px 0 12px;padding:10px 12px;border:1px solid var(--krds-gray-20);border-radius:var(--radius-s);background:#fff}
.lms-upload{margin:8px 0}
.lms-upload[hidden]{display:none}
@media print{.lms-timer,.lms-upload{display:none!important}}
.lms-upload progress{width:100%;max-width:360px;height:12px;accent-color:var(--krds-primary-50)}
.lms-empty{padding:40px 0;text-align:center;color:var(--krds-gray-70)}
.c-table td.l a{display:inline}
table.c-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.c-paging a,.c-paging span{min-width:36px;display:inline-flex;justify-content:center}
.a-side a.sub{display:none}
html[data-fs=l]{font-size:112.5%}
html[data-fs=l] body{zoom:1.1}
html[data-fs=xl] body{zoom:1.25}
html[data-ct=h] body{filter:contrast(1.35)}
.lms-tabs a{padding:12px 18px;font-weight:600;color:var(--krds-gray-70);font-size:var(--fs-b-m);margin-bottom:-2px;text-decoration:none}
.lms-tabs a.on{color:var(--krds-primary-60);box-shadow:inset 0 -3px 0 var(--krds-primary-50)}
.lms-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.lms-list li{padding-bottom:10px;border-bottom:1px solid var(--krds-gray-10)}
.lms-files{padding-left:20px}
.lms-staff{display:flex;flex-wrap:wrap;gap:8px 16px;max-height:240px;overflow:auto}
.lms-paybox{margin:24px auto}
.lms-paybox .mh h1{font-size:var(--fs-h-s);font-weight:700}
.lms-steps-text{padding-left:20px;line-height:1.8}
a.c-kpi{text-decoration:none;color:inherit}
.c-card h3 a{color:inherit}
.c-field .hint{color:var(--krds-gray-70)}
#page>.c-panel,#page>section,#page>form,#page>.two-col,#page>.c-kpis,#page>.c-cards,#page>.c-scroll,#page>.c-confirm,#page>.c-callout{margin-bottom:16px}
.two-col>.c-panel{margin:0}
.c-confirm .no{background:rgba(0,0,0,.22)}
.c-confirm a{color:#fff;text-decoration:underline}
/* 재생기 바탕: 토큰으로(지시 069 — v0.1 남색 #0B1F3A 직접 지정이었다. v0.2 screens.css의 .c-video와 같은 색) */
.lms-video-box video{width:100%;aspect-ratio:16/9;background:var(--krds-gray-90,#18332C);border-radius:var(--radius-l);display:block}
.lms-player-h{font-size:var(--fs-h-xs);font-weight:700;margin-bottom:12px}
select.c-in.lms-rate{width:auto;display:inline-block;height:40px}
.c-quiz{list-style:none;padding:0;display:flex;flex-direction:column;gap:16px;margin:16px 0}
.c-quiz>li{background:#fff;border:1px solid var(--krds-gray-10);border-radius:var(--radius-l);padding:18px 20px}
.c-list li.on .tt{font-weight:700;color:var(--krds-primary-60)}
@media print{.c-header,.c-footer,.c-masthead,.c-lnb,.c-pagehead,.c-actions,.c-split.cert>.c-panel,.lms-mockbar{display:none!important}.c-paper{box-shadow:none}}
@media (max-width:767px){.c-search-mini{display:none}}
/* SV5 자료실·고객지원 */
.lms-tabs a[aria-current]{color:var(--krds-primary-60);box-shadow:inset 0 -3px 0 var(--krds-primary-50)}
#page>.lms-tabs,#page>.c-resultbar,#page>.c-meta,#page>.c-body,#page>.lms-prevnext,#page>.lms-faq{margin-bottom:16px}
.lms-chips{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;padding:0}
.lms-chips li{background:var(--krds-gray-5,#F5F8F6);border-radius:999px;padding:8px 14px}
.lms-sort{display:flex;gap:12px}
.lms-sort a{color:var(--krds-gray-70);text-decoration:none;font-weight:600}
.lms-sort a[aria-current]{color:var(--krds-primary-60);text-decoration:underline}
.lms-prose{white-space:pre-line;line-height:1.7}
.lms-prevnext{display:flex;flex-direction:column;border-top:1px solid var(--krds-gray-20);border-bottom:1px solid var(--krds-gray-20)}
.lms-prevnext a{display:flex;gap:16px;padding:12px 8px;color:inherit;text-decoration:none}
.lms-prevnext a+a{border-top:1px solid var(--krds-gray-10)}
.lms-prevnext span{color:var(--krds-gray-70);min-width:40px}
.lms-faq details{background:#fff;border:1px solid var(--krds-gray-10);border-radius:var(--radius-m);margin-bottom:8px}
.lms-faq summary{cursor:pointer;padding:16px 18px;font-weight:600}
.lms-faq .a{padding:0 18px 16px;display:flex;gap:8px}
.lms-faq .q{color:var(--krds-primary-60);font-weight:700}
.lms-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.lms-grid2 h3{font-size:var(--fs-b-l,17px);font-weight:700;margin-bottom:8px}
.c-table tr.fix td{background:var(--krds-primary-5,#F3FAEE)}
.lms-popup .box{width:min(520px,calc(100% - 32px))}
@media (max-width:767px){.lms-grid2{grid-template-columns:1fr}}
.lms-tabs{flex-wrap:wrap}
/* cp75 U-30: 탭 링크가 줄 안 인라인이라 360px에서 '아동학대 예방'이 줄 끝을 넘었다(scrollWidth 406~412) — 탭 하나를 한 덩어리로 다음 줄로 넘긴다 */
.lms-tabs a{display:inline-block;max-width:100%}
.c-table td.lms-ttl{min-width:240px}
.c-detail-h{margin-bottom:16px}
.c-detail-h h2{font-size:var(--fs-h-m,24px);font-weight:700}
@media (max-width:767px){.lms-tabs a{padding:10px 12px}.c-table td.lms-ttl{min-width:0}}
.lms-popup-img{display:block;width:100%;height:auto;border-radius:var(--radius-m);margin:0 0 12px}

/* D-049 관리자 레이아웃 좁은 화면(태블릿·휴대전화): 좌측 메뉴를 접고 '메뉴' 단추로 펼친다 — 화면 전체 가로 스크롤 없음(표는 .c-scroll 안에서만) */
.a-navbtn{display:none}
@media (max-width:1023px){
  .a-top{height:auto;min-height:56px;flex-wrap:wrap;padding:8px 16px;gap:8px}
  .a-top .brand small{display:none}
  .a-top .r{margin-left:auto;flex-wrap:wrap;gap:8px}
  .a-top .r .lms-prvc-note{display:none}
  .a-navbtn{display:inline-flex;height:34px;background:rgba(255,255,255,.12);color:#fff}
  .a-shell{grid-template-columns:minmax(0,1fr);min-height:0}
  .a-side{display:none;border-right:0;border-bottom:1px solid var(--krds-gray-10)}
  body.nav-open .a-side{display:block}
  .a-main{padding:16px 16px 40px}
  .a-head{flex-wrap:wrap}
  .a-main .c-panel{padding:16px}
}
@media (max-width:767px){.a-top .r>span:first-child{display:none}}

/* SV9-1 U-01 메인 · A-01 대시보드 · A-91 발송 내용 */
.lms-hero .c-actions{margin-top:20px}
.lms-main{display:flex;flex-direction:column;gap:32px;padding:32px 0 56px}
.lms-sechead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}
.lms-sechead h2{font-size:var(--fs-h-s);font-weight:700}
.lms-banners{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.lms-banners li{border-radius:var(--radius-l);padding:20px;min-height:88px;display:flex;align-items:flex-end;font-weight:700;color:#fff;background:var(--krds-primary-60)}
.lms-banners li.t1{background:var(--krds-secondary-80)}.lms-banners li.t2{background:#1D6F30}
.lms-banners a{color:#fff}
.lms-main .lms-grid2{margin-top:0}
.lms-kpis5{grid-template-columns:repeat(5,minmax(0,1fr))}
.lms-kpis5 .c-kpi .hint{display:block;margin-top:6px}
.lms-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--krds-gray-5);border-radius:var(--radius-m,8px);padding:12px;font:inherit}
@media (max-width:1023px){.lms-kpis5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.lms-kpis5{grid-template-columns:1fr}.lms-main{padding:20px 0 40px;gap:24px}}
/* 지시 022 파일 암호 1회 표시 */
.lms-pwbox p{margin:0 0 8px}.lms-pwbox p:last-child{margin:0}
/* 색을 토큰으로(지시 069) — v0.1 회색 값(#1e2124·#8a949e)이 직접 박혀 있었다. 파랑과 같은 성질의 잔재다 */
.lms-pw{font-family:ui-monospace,Consolas,monospace;font-size:1.25rem;letter-spacing:.06em;padding:2px 10px;margin:0 8px;background:#fff;color:var(--krds-gray-90);border:1px solid var(--krds-gray-50);border-radius:4px;user-select:all;word-break:break-all}

/* ============ U-01 메인 새 구성 (지시 069 2-3, 공제회 디자인 샘플) ============
   색은 전부 토큰이다 — `DesignTokenContrastTest`가 규칙과 클래스 조합을 전수로 재고, axe가 실제 렌더링을 본다.
   폭은 `minmax(0,1fr)`로 두어 확대 200%·360px에서 가로 스크롤이 생기지 않게 한다(새 수단 tobe_zoom_check.py가 잰다). */
.lms-hero2{background:var(--csia-mint);color:var(--krds-gray-90);padding:48px 0 44px}
.lms-hero2-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:start}
.lms-kicker{color:var(--krds-primary-60);font-weight:700;font-size:var(--fs-b-s);margin-bottom:8px}
.lms-hero2-copy h1{font-size:var(--fs-h-xl);font-weight:700;line-height:1.3;word-break:keep-all}
.lms-lead{margin-top:14px;color:var(--krds-gray-70);font-size:var(--fs-b-m)}
.lms-hero2-search{margin-top:24px}
.lms-hero2-search label{display:block;font-weight:600;font-size:var(--fs-b-s);margin-bottom:8px}
.lms-hero2-searchbox{display:flex;gap:8px;flex-wrap:wrap}
.lms-hero2-searchbox input{flex:1 1 220px;min-width:0;height:48px;padding:0 16px;border:1px solid var(--krds-gray-20);border-radius:var(--radius-s);background:#fff;color:var(--krds-gray-90);font:inherit}
.lms-hero2-searchbox .c-btn{height:48px;padding:0 24px}
.lms-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.lms-tags .chip{text-decoration:none}
.lms-mycard{background:#fff;border:1px solid var(--krds-gray-10);border-radius:var(--radius-l);padding:28px 24px;box-shadow:var(--shadow-1)}
.lms-mycard h2{font-size:var(--fs-h-s);font-weight:700}
.lms-mycard-desc{margin-top:8px;color:var(--krds-gray-70);font-size:var(--fs-b-s)}
.lms-mycard-list{list-style:none;padding:0;margin:18px 0 22px;display:flex;flex-direction:column;gap:12px}
.lms-mycard-list li{display:flex;align-items:center;gap:10px;font-size:var(--fs-b-s);color:var(--krds-gray-90)}
.lms-mycard-ic{flex:none;width:32px;height:32px;border-radius:50%;background:var(--krds-primary-5);color:var(--krds-primary-60);display:grid;place-items:center}
.lms-mycard-act{display:flex;flex-direction:column;gap:8px}
.lms-mycard-join{margin-top:14px;font-size:var(--fs-b-xs);color:var(--krds-gray-70)}
.lms-mycard-join a{color:var(--krds-primary-60);font-weight:700;text-decoration:underline}
.lms-quick{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.lms-quick a{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 10px;background:#fff;border:1px solid var(--krds-gray-10);border-radius:var(--radius-l);color:var(--krds-gray-90);font-weight:600;font-size:var(--fs-b-s);text-align:center;word-break:keep-all}
.lms-quick-ic{width:44px;height:44px;border-radius:50%;background:var(--krds-primary-5);color:var(--krds-primary-60);display:grid;place-items:center}
.lms-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px}
.lms-filter-h{font-weight:700;font-size:var(--fs-b-s);color:var(--krds-gray-90)}
.lms-filter-btns{display:flex;flex-wrap:wrap;gap:8px}
.lms-filter-btns .chip{cursor:pointer;font:inherit;font-size:var(--fs-b-s)}
.lms-filter-cnt{margin-left:auto;color:var(--krds-gray-70);font-size:var(--fs-b-s)}
.lms-card-tags{display:flex;flex-wrap:wrap;gap:6px}
.lms-fit{background:var(--csia-canvas);border:1px solid var(--krds-gray-10);border-radius:var(--radius-l);padding:28px 24px}
.lms-fit-desc{color:var(--krds-gray-70);font-size:var(--fs-b-s);margin-bottom:16px}
.lms-fit-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.lms-fit-list a{display:inline-block;padding:10px 16px;background:#fff;border:1px solid var(--krds-gray-20);border-radius:var(--radius-pill);color:var(--krds-primary-60);font-weight:600;font-size:var(--fs-b-s)}
.lms-tabs2{display:flex;gap:4px;border-bottom:1px solid var(--krds-gray-10);margin-bottom:16px}
.lms-tabs2 button{padding:12px 20px;border:0;font:inherit;font-weight:600;font-size:var(--fs-b-s);color:var(--krds-gray-70);cursor:pointer}
.lms-tabs2 button[aria-selected=true]{color:var(--krds-primary-60);box-shadow:inset 0 -3px 0 var(--krds-primary-50)}
.lms-more{margin-top:14px;text-align:right}
.lms-more a{color:var(--krds-primary-60);font-weight:600;font-size:var(--fs-b-s);text-decoration:underline}
.lms-biz{background:var(--krds-primary-70);color:#fff;padding:48px 0 56px}
.lms-biz h2{font-size:var(--fs-h-m);font-weight:700}
/* 진녹색 바닥의 보조 글자에는 `opacity`를 쓰지 않는다 — 흐려진 글자의 실효 대비는 계산·단정에서 빠지고
   axe만 잡는다. 밝은 쪽 토큰을 직접 주면 값으로 재진다(primary-10 on primary-70 = 8.86:1).
   칸 바탕도 반투명(rgba) 대신 불투명 토큰으로 둔다(조상 배경과 합성해야 하는 값은 대비 계산이 되지 않는다). */
.lms-biz-desc{margin-top:8px;color:var(--krds-primary-10);font-size:var(--fs-b-s)}
.lms-biz-list{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.lms-biz-list a{display:flex;flex-direction:column;gap:8px;height:100%;padding:22px 20px;background:var(--krds-primary-60);border:1px solid var(--krds-primary-50);border-radius:var(--radius-l);color:#fff}
.lms-biz-list b{font-size:var(--fs-b-m);font-weight:700}
.lms-biz-list span{font-size:var(--fs-b-xs);color:var(--krds-primary-10);word-break:keep-all}
@media (max-width:1023px){
  .lms-hero2-in{grid-template-columns:minmax(0,1fr)}
  .lms-quick{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lms-biz-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .lms-hero2{padding:32px 0 28px}
  .lms-quick{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lms-biz-list{grid-template-columns:minmax(0,1fr)}
  .lms-filter-cnt{margin-left:0;width:100%}
}
/* ============ 화면 그림(지시 102) — 그림은 /img/sample/(합성 실사풍) ============
   글자는 그림 위에 바로 얹지 않고 불투명 상자(흰 바탕) 위에 둔다 — 대비를 토큰 값으로 잴 수 있게(4.5:1 이상).
   카드 그림은 비율 고정(과정 16:9 · 출품작 4:3)이라 카드 높이가 들쭉날쭉하지 않다. */
.lms-vis{position:relative;background:var(--krds-gray-90);overflow:hidden}
.lms-vis-slide{position:relative;height:420px}
.lms-vis-slide[hidden]{display:none}
.lms-vis-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.lms-vis-slide .wrap{position:relative;height:100%;display:flex;align-items:center}
.lms-vis-cap{background:#fff;color:var(--krds-gray-90);border-radius:var(--radius-l);padding:24px 28px;max-width:440px;box-shadow:var(--shadow-1)}
.lms-vis-cap .lms-kicker{margin-bottom:6px}
.lms-vis-ttl{font-size:var(--fs-h-m);font-weight:700;line-height:1.35;word-break:keep-all}
.lms-vis-cap p.lms-vis-desc{margin:10px 0 16px;color:var(--krds-gray-70);font-size:var(--fs-b-s);word-break:keep-all}
.lms-vis-ctrl{position:absolute;left:0;right:0;bottom:16px;pointer-events:none}
.lms-vis-ctrl .wrap{display:flex;justify-content:flex-end}
.lms-vis-btns{pointer-events:auto;display:flex;align-items:center;gap:6px;background:#fff;border-radius:var(--radius-pill);padding:4px 8px;box-shadow:var(--shadow-1)}
.lms-vis-btns button{min-width:36px;height:36px;border:0;background:transparent;color:var(--krds-gray-90);font:inherit;font-weight:700;cursor:pointer;border-radius:var(--radius-pill)}
.lms-vis-btns button:hover{background:var(--krds-gray-5)}
.lms-vis-cnt{font-size:var(--fs-b-xs);color:var(--krds-gray-70);padding:0 4px}
.c-card .ci{aspect-ratio:16/9;overflow:hidden;background:var(--krds-gray-5)}
.c-card .ci.r43{aspect-ratio:4/3}
.c-card .ci img{width:100%;height:100%;object-fit:cover;display:block}
.lms-figure{margin:0 0 16px;border-radius:var(--radius-l);overflow:hidden;background:var(--krds-gray-5)}
.lms-figure img{width:100%;max-height:320px;object-fit:cover;display:block}
.c-layout.narrow:has(.lms-auth-split){grid-template-columns:minmax(0,1040px)}
.lms-auth-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:stretch}
.lms-auth-vis{margin:0;border-radius:var(--radius-l);overflow:hidden;background:var(--krds-gray-5);min-height:360px}
.lms-auth-vis img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:1023px){.lms-auth-split{grid-template-columns:minmax(0,1fr)}.lms-auth-vis{display:none}}
@media (max-width:767px){
  .lms-vis-slide{height:auto;min-height:300px}
  .lms-vis-slide .wrap{align-items:flex-end;padding-top:120px;padding-bottom:64px}
  .lms-vis-cap{padding:18px 20px}
}
@media (prefers-reduced-motion:reduce){.lms-vis-slide{transition:none}}
/* A-83 교육일별 달력(지시 067) — 넓은 화면은 달력 격자, 좁은 화면(≤767px)은 날짜별 목록형 달력 */
.lms-cal-list{display:none;list-style:none;padding:0;margin:0}
.lms-cal-list>li{border-bottom:1px solid var(--krds-gray-20);padding:8px 0}
@media (max-width:767px){.lms-cal-grid{display:none}.lms-cal-list{display:block}}
