/* 고수 허브 — 학습생활기록부 · 학부모 화면 (10-07 · 설계서 docs/생활기록부_설계.md · 시안 docs/record_mock) */
:root { --lr-navy: #14284B; --lr-navy2: #2C4470; --lr-ink: #1B2333; --lr-ink2: #5B6474; --lr-ink3: #8A92A3; --lr-line: #D9DEE7; --lr-line2: #ECEFF4; --lr-bg: #F4F6F9; --lr-accent: #2F80ED; --lr-accentBg: #EAF2FE; --lr-warn: #B4532A; --lr-warnBg: #FBF0EA; --lr-todo: #E6EAF0; }

/* ───── 학부모 화면 틀 ───── */
.pa-body { margin: 0; background: var(--lr-bg); color: var(--lr-ink); font-family: "Pretendard Variable", Pretendard, "Malgun Gothic", sans-serif; font-size: 17px; line-height: 1.55; -webkit-text-size-adjust: 100%; word-break: keep-all; }
.pa { max-width: 880px; margin: 0 auto; padding: 16px 16px 40px; box-sizing: border-box; }
.pa.wide { padding: 0 0 40px; }
.pa *, .lr *, .rc-tmod * { box-sizing: border-box; }
.pa-hero { text-align: center; padding: 26px 0 14px; } .pa-hero img { width: 58px; height: auto; } .pa-hero h1 { margin: 8px 0 2px; font-size: 26px; color: var(--lr-navy); letter-spacing: -.02em; } .pa-hero p { margin: 0; color: var(--lr-ink2); }
.pa-card { background: #fff; border-radius: 14px; padding: 18px; border: 1px solid var(--lr-line); margin: 0 auto 14px; max-width: 560px; display: grid; gap: 12px; }
.pa-card h2 { margin: 0; font-size: 21px; color: var(--lr-navy); }
.pa-card label { display: grid; gap: 6px; font-weight: 700; font-size: 16px; }
.pa-card input { font: inherit; font-size: 20px; padding: 12px 14px; border: 1.5px solid #C9D1E2; border-radius: 10px; width: 100%; background: #fff; color: var(--lr-ink); }
.pa-card input:focus { outline: 3px solid rgba(47,128,237,.25); border-color: var(--lr-accent); }
.pa-hint { margin: 0; color: var(--lr-ink2); font-size: 15px; }
.pa-err { margin: 0; color: var(--lr-warn); font-weight: 700; background: var(--lr-warnBg); border-radius: 8px; padding: 10px 12px; }
.pa-btn { font: inherit; font-weight: 800; font-size: 18px; border: 0; border-radius: 10px; padding: 14px; background: var(--lr-navy); color: #fff; cursor: pointer; width: 100%; }
.pa-btn.ghost { background: #EEF1F6; color: var(--lr-navy); } .pa-btn.sm { font-size: 15px; padding: 10px; } .pa-btn:disabled { opacity: .6; }
.pa-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 16px; max-width: 880px; margin: 0 auto; }
.pa-back { font: inherit; border: 0; background: none; color: var(--lr-accent); font-weight: 700; padding: 6px 0; cursor: pointer; font-size: 16px; }
.pa-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; padding: 8px 2px 16px; max-width: 560px; margin: 0 auto; } .pa-top b { font-size: 26px; color: var(--lr-navy); display: block; } .pa-top small, .pa-top time { color: var(--lr-ink2); font-size: 14px; }
.pa-big { display: grid; gap: 6px; width: 100%; max-width: 560px; margin: 0 auto 14px; text-align: left; font: inherit; border: 0; cursor: pointer; border-radius: 14px; padding: 26px 22px; color: #fff; background: var(--lr-navy); }
.pa-big.alt { background: #fff; color: var(--lr-navy); border: 1.5px solid var(--lr-navy); }
.pa-big b { font-size: 23px; } .pa-big span { color: #AFC0DD; font-size: 15px; } .pa-big.alt span { color: var(--lr-ink2); }
.pa-links { display: flex; justify-content: center; gap: 18px; margin-top: 6px; } .pa-links button { font: inherit; font-size: 15px; background: none; border: 0; color: var(--lr-ink2); text-decoration: underline; cursor: pointer; }
.pa-per { display: flex; gap: 6px; overflow-x: auto; padding: 0 16px 10px; max-width: 880px; margin: 0 auto; scrollbar-width: none; }
.pa-per button { flex: none; font: inherit; font-size: 14px; border: 1px solid var(--lr-line); background: #fff; color: var(--lr-ink2); border-radius: 99px; padding: 5px 12px; cursor: pointer; }
.pa-per button.on { background: var(--lr-navy); border-color: var(--lr-navy); color: #fff; font-weight: 700; }
.pa-od { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pa-od button { width: 100%; font: inherit; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1px solid var(--lr-line); background: #fff; border-radius: 10px; padding: 12px 14px; cursor: pointer; color: var(--lr-ink); }
.pa-od span { display: grid; } .pa-od small { color: var(--lr-ink2); font-size: 14px; } .pa-od em { font-style: normal; font-weight: 800; color: var(--lr-warn); font-size: 14px; white-space: nowrap; text-align: right; } .pa-od em i { display: block; font-style: normal; color: var(--lr-navy); }
.pa-print { position: fixed; left: -9999px; top: 0; width: 794px; height: 1123px; border: 0; }

/* 오답노트 카드 (휴대폰 세로) */
.oc { background: #fff; border: 1px solid var(--lr-line); border-radius: 12px; margin: 0 auto 12px; max-width: 560px; overflow: hidden; }
.oc-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 10px 14px; border-bottom: 1px solid var(--lr-line2); background: #FAFBFC; }
.oc-h b { color: var(--lr-warn); font-size: 17px; } .oc-h span { font-size: 13px; color: var(--lr-ink2); } .oc-h .st { color: var(--lr-navy); letter-spacing: 1px; } .oc-h .ok { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--lr-navy); }
.oc-q { padding: 12px 14px; font-size: 16px; line-height: 1.75; overflow-x: auto; }
.oc-q img { display: block; max-width: 100%; height: auto; margin: 8px auto; }
.oc-box { border: 1px solid #555; border-radius: 4px; padding: 6px 10px; margin: 8px 0; } .oc-box small { display: block; color: var(--lr-ink2); }
.oc-ch { display: grid; gap: 2px; margin-top: 6px; }
.oc-t { display: block; width: 100%; font: inherit; font-size: 15px; font-weight: 700; text-align: left; border: 0; border-top: 1px solid var(--lr-line2); background: #fff; color: var(--lr-accent); padding: 11px 14px; cursor: pointer; }
.oc-a { padding: 4px 14px 14px; font-size: 15px; line-height: 1.75; background: #FBFCFE; overflow-x: auto; } .oc-a .ans { font-weight: 800; color: var(--lr-navy); margin: 6px 0; } .oc-a img { max-width: 100%; height: auto; }
.oc-sim { margin: 0 14px 14px; border: 1.5px solid var(--lr-accent); border-radius: 10px; } .oc-sim > p { margin: 0; padding: 6px 12px 0; font-size: 13px; font-weight: 800; color: var(--lr-accent); }
.oc-sim .oc-t { border-radius: 0 0 10px 10px; }

/* ───── 학습생활기록부 한 장 (.lr — 시안 그대로) ───── */
.lr { background: #fff; color: var(--lr-ink); font-family: "Pretendard Variable", Pretendard, "Malgun Gothic", sans-serif; font-size: 14px; line-height: 1.6; font-variant-numeric: tabular-nums; -webkit-print-color-adjust: exact; print-color-adjust: exact; word-break: keep-all; max-width: 880px; margin: 0 auto; }
.lr h1, .lr h2, .lr h3, .lr p { margin: 0; }
.lr .muted { color: var(--lr-ink2); } .lr .small { font-size: 12px; }
.lr .top { background: var(--lr-navy); color: #fff; padding: 20px 16px 16px; }
.lr .top-in { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.lr .org { font-size: 12px; letter-spacing: .12em; color: #AFC0DD; font-weight: 600; }
.lr .top h1 { font-size: 24px; font-weight: 800; letter-spacing: -.02em; margin-top: 2px; color: #fff; }
.lr .en { font-size: 12px; color: #AFC0DD; letter-spacing: .04em; }
.lr .logo { width: 52px; height: auto; background: #fff; border-radius: 6px; padding: 5px; }
.lr .period { margin-top: 12px; font-size: 15px; font-weight: 700; } .lr .period small { font-weight: 500; color: #AFC0DD; font-size: 12px; margin-left: 6px; }
.lr .live { display: inline-block; font-size: 11px; font-weight: 700; background: var(--lr-accent); color: #fff; border-radius: 4px; padding: 1px 6px; margin-left: 6px; vertical-align: 2px; }
.lr .info { display: grid; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid var(--lr-line); }
.lr .info div { padding: 7px 10px; border-top: 1px solid var(--lr-line2); border-right: 1px solid var(--lr-line2); min-width: 0; }
.lr .info div:nth-child(3n) { border-right: 0; }
.lr .info small { display: block; font-size: 11px; color: var(--lr-ink3); } .lr .info b { font-size: 13px; font-weight: 700; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .lr .info .big b { font-size: 16px; }
.lr .note1 { padding: 8px 16px; font-size: 12.5px; color: var(--lr-ink2); border-bottom: 1px solid var(--lr-line); background: #FAFBFC; }
.lr .toc { display: flex; gap: 4px; overflow-x: auto; padding: 8px 16px; border-bottom: 1px solid var(--lr-line); scrollbar-width: none; }
.lr .toc a { flex: none; font-size: 12px; color: var(--lr-ink2); text-decoration: none; padding: 3px 9px; border: 1px solid var(--lr-line); border-radius: 99px; }
.lr section.sec { padding: 20px 16px 6px; break-inside: avoid; }
.lr .sh { display: flex; align-items: baseline; gap: 10px; border-bottom: 2px solid var(--lr-navy); padding-bottom: 6px; margin-bottom: 14px; }
.lr .sh .no { font-size: 13px; font-weight: 800; color: var(--lr-accent); letter-spacing: .04em; } .lr .sh h2 { font-size: 18px; font-weight: 800; letter-spacing: -.02em; color: var(--lr-ink); } .lr .sh .desc { margin-left: auto; font-size: 11.5px; color: var(--lr-ink3); text-align: right; }
.lr .lead { font-size: 14px; margin-bottom: 12px; } .lr .lead b { color: var(--lr-navy); }
.lr h3.sub { font-size: 13.5px; font-weight: 800; margin: 18px 0 8px; color: var(--lr-navy); }
.lr .keys { list-style: none; padding: 0; margin: 0 0 16px; border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; }
.lr .keys li { display: flex; gap: 10px; padding: 9px 12px; border-top: 1px solid var(--lr-line2); font-size: 14px; line-height: 1.55; } .lr .keys li:first-child { border-top: 0; }
.lr .keys li i { font-style: normal; flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--lr-navy); color: #fff; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.lr .keys li.w i { background: var(--lr-warn); } .lr .keys b { color: var(--lr-navy); }
.lr .kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--lr-line); border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; }
.lr .kpi { background: #fff; padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 3px; min-height: 104px; min-width: 0; }
.lr .kpi .lb { font-size: 12px; color: var(--lr-ink2); font-weight: 600; }
.lr .kpi .v { font-size: 27px; line-height: 1.1; font-weight: 800; color: var(--lr-navy); letter-spacing: -.03em; } .lr .kpi .v u { text-decoration: none; font-size: 14px; font-weight: 700; margin-left: 2px; color: var(--lr-ink2); }
.lr .kpi .s { font-size: 11.5px; color: var(--lr-ink2); line-height: 1.4; }
.lr .kpi .kf { margin-top: auto; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.lr .gd { display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 4px; border: 1px solid currentColor; }
.lr .gd.g1 { color: #fff; background: var(--lr-navy); border-color: var(--lr-navy); } .lr .gd.g2 { color: var(--lr-navy); } .lr .gd.g3 { color: var(--lr-ink2); } .lr .gd.g4 { color: var(--lr-warn); }
.lr .up { color: var(--lr-accent); font-weight: 700; font-size: 12px; } .lr .dn { color: var(--lr-warn); font-weight: 700; font-size: 12px; }
.lr .pbar { height: 6px; background: var(--lr-todo); border-radius: 3px; overflow: hidden; width: 100%; } .lr .pbar i { display: block; height: 100%; background: var(--lr-navy); border-radius: 3px; }
.lr .steps5 { display: flex; gap: 2px; width: 100%; } .lr .steps5 span { flex: 1; height: 6px; background: var(--lr-todo); border-radius: 2px; } .lr .steps5 span.on { background: var(--lr-navy); } .lr .steps5 span.nx { background: #fff; outline: 1.5px dashed var(--lr-accent); outline-offset: -1.5px; }
.lr .legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--lr-ink2); margin-bottom: 10px; } .lr .legend span { display: inline-flex; align-items: center; gap: 5px; }
.lr .sw { width: 12px; height: 12px; border-radius: 2px; display: inline-block; } .lr .sw.d { background: var(--lr-navy); } .lr .sw.c { background: var(--lr-accent); } .lr .sw.t { background: #fff; border: 1px solid #B7BFCC; }
.lr .overall { display: flex; gap: 2px; margin: 4px 0; } .lr .overall i { flex: 1; height: 14px; background: #fff; border: 1px solid #C9D0DB; border-radius: 2px; min-width: 2px; } .lr .overall i.d { background: var(--lr-navy); border-color: var(--lr-navy); } .lr .overall i.c { background: var(--lr-accent); border-color: var(--lr-accent); }
.lr .sem { margin-top: 14px; }
.lr .sem-h { display: flex; justify-content: space-between; font-size: 12.5px; font-weight: 800; padding: 6px 0; border-bottom: 1px solid var(--lr-line); } .lr .sem-h span { font-weight: 600; color: var(--lr-ink2); }
.lr .unit { display: grid; grid-template-columns: 118px 1fr 46px; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--lr-line2); font-size: 13px; }
.lr .unit .nm { line-height: 1.3; min-width: 0; } .lr .unit .nm small { display: block; font-size: 10.5px; color: var(--lr-ink3); }
.lr .unit .cells { display: flex; gap: 2px; } .lr .unit .cells i { flex: 1; height: 12px; background: #fff; border: 1px solid #C9D0DB; border-radius: 2px; } .lr .unit .cells i.d { background: var(--lr-navy); border-color: var(--lr-navy); } .lr .unit .cells i.c { background: var(--lr-accent); border-color: var(--lr-accent); box-shadow: 0 0 0 2px var(--lr-accentBg); }
.lr .unit .st { font-size: 11.5px; text-align: right; color: var(--lr-ink2); font-weight: 600; }
.lr .unit.now { background: var(--lr-accentBg); margin: 0 -8px; padding: 7px 8px; border-radius: 6px; } .lr .unit.now .st { color: var(--lr-accent); } .lr .unit .cur { display: block; font-size: 10.5px; color: var(--lr-accent); font-weight: 700; }
.lr .sem.fold .unit { display: none; }
.lr .lv-row { display: grid; grid-template-columns: 44px 1fr 92px; align-items: center; gap: 10px; padding: 6px 0; }
.lr .lv-row .nm { font-weight: 700; font-size: 13px; } .lr .lv-row .nm small { display: block; font-weight: 500; color: var(--lr-ink3); font-size: 10.5px; line-height: 1.1; }
.lr .lv-row .track { position: relative; height: 16px; background: var(--lr-line2); border-radius: 3px; } .lr .lv-row .track i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--lr-navy2); border-radius: 3px; }
.lr .lv-row.now .track i { background: var(--lr-navy); } .lr .lv-row.next .track i { background: #9DB7E8; } .lr .lv-row .track .goal { position: absolute; top: -4px; bottom: -4px; left: 70%; border-left: 1.5px dashed var(--lr-accent); }
.lr .lv-row .val { font-size: 12px; color: var(--lr-ink2); text-align: right; } .lr .lv-row .val b { font-size: 14px; color: var(--lr-ink); }
.lr .lv-row.now { background: var(--lr-accentBg); border-radius: 6px; margin: 0 -8px; padding: 6px 8px; }
.lr .callout { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; margin-top: 12px; }
.lr .callout div { padding: 11px 13px; } .lr .callout div + div { border-left: 1px solid var(--lr-line); } .lr .callout small { display: block; font-size: 11.5px; color: var(--lr-ink2); } .lr .callout b { font-size: 22px; color: var(--lr-navy); font-weight: 800; } .lr .callout div.nx b { color: var(--lr-accent); } .lr .callout em { font-style: normal; font-size: 12px; color: var(--lr-ink2); display: block; }
.lr .score-box { display: flex; align-items: center; gap: 16px; padding: 12px 14px; border: 1px solid var(--lr-line); border-radius: 10px; margin-bottom: 12px; }
.lr .score-box .big { font-size: 40px; font-weight: 800; color: var(--lr-navy); line-height: 1; } .lr .score-box .big u { text-decoration: none; font-size: 15px; color: var(--lr-ink2); margin-left: 2px; } .lr .score-box p { font-size: 13px; }
.lr .bars { display: grid; gap: 7px; }
.lr .ib { display: grid; grid-template-columns: 6.5em 1fr 4.2em; align-items: center; gap: 8px; font-size: 13px; } .lr .ib .bar { height: 8px; background: var(--lr-todo); border-radius: 2px; overflow: hidden; } .lr .ib .bar i { display: block; height: 100%; background: var(--lr-navy2); border-radius: 2px; } .lr .ib .bar i.w { background: var(--lr-warn); } .lr .ib b { text-align: right; font-size: 12.5px; } .lr .ib small { grid-column: 2 / 4; font-size: 11px; color: var(--lr-ink3); margin-top: -5px; }
.lr .cal { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.lr .cal div { border: 1px solid var(--lr-line); border-radius: 6px; padding: 5px 4px; text-align: center; font-size: 11px; line-height: 1.3; } .lr .cal div b { display: block; font-size: 12px; }
.lr .cal div.on { background: var(--lr-navy); border-color: var(--lr-navy); color: #fff; } .lr .cal div.late { background: #fff; border: 1.5px solid var(--lr-navy); color: var(--lr-navy); } .lr .cal div.miss { background: var(--lr-warnBg); border: 1.5px dashed var(--lr-warn); color: var(--lr-warn); }
.lr .facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--lr-line); border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; margin-top: 12px; }
.lr .facts div { background: #fff; padding: 10px 12px; } .lr .facts small { display: block; font-size: 11.5px; color: var(--lr-ink2); } .lr .facts b { font-size: 20px; font-weight: 800; color: var(--lr-navy); } .lr .facts b u { text-decoration: none; font-size: 12px; color: var(--lr-ink2); font-weight: 600; margin-left: 2px; } .lr .facts em { display: block; font-style: normal; font-size: 11px; color: var(--lr-ink3); }
.lr .chart { border: 1px solid var(--lr-line); border-radius: 10px; padding: 10px 10px 6px; } .lr .chart h4 { margin: 0 0 2px; font-size: 12.5px; font-weight: 800; } .lr .chart .cap { font-size: 11px; color: var(--lr-ink3); margin-bottom: 4px; } .lr .chart svg { display: block; width: 100%; height: auto; } .lr .chart svg text { font-family: inherit; }
.lr .charts { display: grid; gap: 12px; }
.lr .sw2 { display: grid; gap: 12px; }
.lr .box { border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; } .lr .box h4 { margin: 0; font-size: 13px; padding: 8px 12px; background: #F0F2F6; color: var(--lr-navy); font-weight: 800; border-bottom: 1px solid var(--lr-line); } .lr .box.w h4 { background: var(--lr-warnBg); color: var(--lr-warn); }
.lr .box ul { list-style: none; margin: 0; padding: 0; } .lr .box li { padding: 9px 12px; border-top: 1px solid var(--lr-line2); font-size: 13px; line-height: 1.45; } .lr .box li:first-child { border-top: 0; } .lr .box li .r { float: right; font-weight: 700; color: var(--lr-navy); margin-left: 8px; } .lr .box.w li .r { color: var(--lr-warn); } .lr .box li small { display: block; color: var(--lr-ink3); font-size: 11px; }
.lr .odap-sum { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; margin-bottom: 12px; }
.lr .odap-sum div { padding: 10px 12px; } .lr .odap-sum div + div { border-left: 1px solid var(--lr-line); } .lr .odap-sum small { display: block; font-size: 11.5px; color: var(--lr-ink2); } .lr .odap-sum b { font-size: 24px; font-weight: 800; color: var(--lr-navy); } .lr .odap-sum div.w b { color: var(--lr-warn); }
.lr .memo { border-left: 3px solid var(--lr-navy); background: #F7F8FA; padding: 14px 16px; font-size: 14px; line-height: 1.75; border-radius: 0 8px 8px 0; white-space: pre-line; } .lr .memo .sig { display: block; text-align: right; margin-top: 8px; font-size: 12.5px; color: var(--lr-ink2); white-space: normal; }
.lr .plan { margin-top: 10px; font-size: 13.5px; white-space: pre-line; border: 1px solid var(--lr-line); border-radius: 8px; padding: 10px 12px; } .lr .plan b { color: var(--lr-navy); display: block; margin-bottom: 2px; }
.lr .foot { margin-top: 22px; background: #F0F2F6; padding: 18px 16px 22px; font-size: 12px; color: var(--lr-ink2); border-top: 1px solid var(--lr-line); }
.lr .foot .row { display: flex; gap: 14px; align-items: center; } .lr .foot img { width: 40px; } .lr .foot b { color: var(--lr-ink); font-size: 13.5px; }
.lr .foot .note { margin-top: 10px; font-size: 11px; color: var(--lr-ink3); line-height: 1.6; }
@media (min-width: 760px) {
  .lr .top, .lr section.sec, .lr .toc, .lr .foot, .lr .note1 { padding-left: 36px; padding-right: 36px; }
  .lr .info div { padding-left: 36px; }
  .lr .kpis { grid-template-columns: repeat(3, 1fr); }
  .lr .charts, .lr .sw2, .lr .two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
  .lr .unit { grid-template-columns: 170px 1fr 60px; }
  .lr .cal { grid-template-columns: repeat(12, 1fr); }
  .lr .top h1 { font-size: 30px; } .lr .top .logo { width: 62px; }
  .pa.wide .lr { box-shadow: 0 2px 16px rgba(20,40,75,.08); border: 1px solid var(--lr-line); margin-top: 6px; }
}

/* ───── 선생님 창 (허브 modal 안) ───── */
.rc-wide { max-width: 900px !important; width: min(900px, calc(100vw - 24px)) !important; box-sizing: border-box; overflow-x: hidden; }
.rc-tmod { min-width: 0; overflow-x: hidden; }
.rc-th { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; } .rc-th h2 { margin: 0; }
.rc-per { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; } .rc-per select { font: inherit; padding: 6px 8px; border-radius: 8px; border: 1px solid #C9D1E2; }
.rc-st { font-size: 13px; font-weight: 700; padding: 3px 9px; border-radius: 99px; background: #F0F2F6; color: var(--lr-ink2); } .rc-st.pub { background: var(--lr-navy); color: #fff; }
.rc-tools { display: grid; gap: 10px; } .rc-tool { border: 1px solid var(--lr-line); border-radius: 12px; padding: 12px 14px; background: #FAFBFE; color: var(--lr-ink); } .rc-tool h3 { margin: 0 0 4px; font-size: 15px; }
.rc-tool details > summary { cursor: pointer; font-weight: 800; font-size: 15px; }
.rc-sub { margin: 6px 0 0; font-size: 13px; color: var(--lr-ink2); }
.rc-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rc-codes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 8px; } .rc-codes input { font: inherit; padding: 8px; border: 1px solid #C9D1E2; border-radius: 10px; width: 100%; text-align: center; letter-spacing: .2em; min-width: 0; }
.rc-tool textarea { width: 100%; font: inherit; border: 1px solid #C9D1E2; border-radius: 10px; padding: 8px; line-height: 1.6; }
.rc-qr { margin-top: 10px; text-align: center; } .rc-qr img { width: 180px; height: 180px; image-rendering: pixelated; } .rc-qr small { display: block; color: var(--lr-ink2); }
.rc-topic { border-top: 1px solid var(--lr-line2); padding: 8px 0; } .rc-topic:first-of-type { border-top: 0; }
.rc-topic > b { display: block; font-size: 13px; color: var(--lr-navy); margin-bottom: 4px; }
.rc-chip { display: block; width: 100%; text-align: left; font: inherit; font-size: 13.5px; line-height: 1.5; border: 1px solid var(--lr-line); background: #fff; color: var(--lr-ink); border-radius: 8px; padding: 6px 10px; margin: 4px 0; cursor: pointer; }
.rc-chip.fit { border-color: #B9CCEB; } .rc-chip.fit::before { content: '추천 '; font-size: 11px; font-weight: 800; color: var(--lr-accent); }
.rc-chip.on { background: var(--lr-accentBg); border-color: var(--lr-accent); font-weight: 600; } .rc-chip.on::after { content: ' ✓'; color: var(--lr-accent); font-weight: 800; }
.rc-chips2 { max-height: 360px; overflow-y: auto; padding-right: 4px; }
.rc-prev { margin-top: 12px; border: 1px solid var(--lr-line); border-radius: 10px; overflow: hidden; }

/* 알림 띠 (반 · 학생 화면) */
.rc-alert { border: 1.5px solid var(--lr-warn); background: var(--lr-warnBg); color: var(--lr-ink); border-radius: 12px; padding: 10px 14px; margin: 0 0 12px; display: grid; gap: 6px; } .rc-alert > b { color: var(--lr-warn); }
.rc-al { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 14px; } .rc-al span { flex: 1 1 260px; }

/* ───── 인쇄 A4 (학부모 화면 · 인쇄용 문서 공통) ───── */
@page { size: A4; margin: 12mm 12mm 14mm; }
@media print {
  .pa-body { background: #fff; font-size: 9.3pt; }
  .pa, .pa.wide { max-width: none; padding: 0; }
  .pa-bar, .pa-per, .pa-btn, .pa-links, .pa-back, .lr .toc { display: none !important; }
  .lr { max-width: none; font-size: 9.3pt; box-shadow: none !important; border: 0 !important; margin: 0 !important; }
  .lr .top { padding: 10px 14px; } .lr .top h1 { font-size: 20pt; } .lr .top .logo { width: 44px; } .lr .period { margin-top: 6px; }
  .lr .info { grid-template-columns: repeat(6, 1fr); } .lr .info div { padding: 5px 8px; border-right: 1px solid var(--lr-line2) !important; } .lr .info .big b { font-size: 12pt; }
  .lr section.sec, .lr .foot, .lr .note1 { padding-left: 2mm; padding-right: 2mm; }
  .lr section.sec { padding-top: 10px; break-inside: auto; }
  .lr .sh { margin-bottom: 8px; padding-bottom: 4px; break-after: avoid; } .lr .sh h2 { font-size: 12.5pt; }
  .lr .keys li { padding: 6px 10px; font-size: 9.6pt; } .lr .keys { margin-bottom: 8px; }
  .lr .kpis { grid-template-columns: repeat(6, 1fr); } .lr .kpi { min-height: 0; padding: 8px 9px; } .lr .kpi .v { font-size: 19pt; }
  .lr .charts, .lr .sw2, .lr .two { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; }
  .lr .unit { grid-template-columns: 34mm 1fr 14mm; padding: 1.5px 0; font-size: 8.6pt; } .lr .unit .nm small { display: inline; margin-left: 4px; } .lr .unit.now { margin: 0; padding: 3px 4px; }
  .lr .overall i { height: 10px; }
  .lr .pb { break-before: page; }
  .lr .chart, .lr .box, .lr .callout, .lr .score-box, .lr .facts, .lr .odap-sum, .lr .memo, .lr .kpis, .lr .keys, .lr .cal, .lr .bars { break-inside: avoid; }
  .lr .chart svg { max-height: 44mm; }
  .lr h3.sub { margin: 10px 0 5px; } .lr .lead { margin-bottom: 8px; } .lr .lv-row { padding: 4px 0; }
  .lr .foot { margin-top: 10px; padding: 10px 4mm; } .lr .memo { font-size: 9.6pt; }
  .lr a { color: inherit; text-decoration: none; }
}
/* 10-07 최근 수업 기록 (오늘 진도 특이사항 · 학생 한 줄) */
.rc-notes { margin: 10px 0; padding: 10px 12px; border-radius: 12px; background: var(--surface-2, #f5f7fa); font-size: 13px; }
.rc-notes ul { margin: 6px 0 0; padding-left: 16px; display: grid; gap: 4px; }
.rc-notes em { font-style: normal; font-weight: 700; margin-right: 4px; }
