/* 서류·양식·규정 라이브러리 (/documents) — 목록 시간표·필터·카드, 상세 페이지, 서식 복사·인쇄 */
.doc-hero h1{margin:.2rem 0 .4rem;font-size:clamp(1.5rem,3.2vw,2.1rem);letter-spacing:-.02em}
.doc-legal{border-left:4px solid var(--warn,#f59e0b);background:var(--soft,#eef0f4);padding:.7rem .9rem;border-radius:10px;font-size:.86rem;margin:1rem 0}
.doc-review{border-left:4px solid var(--bad,#dc2626);background:var(--soft,#eef0f4);padding:.6rem .9rem;border-radius:10px;font-size:.86rem;margin:.8rem 0}
.doc-timeline{list-style:none;padding:0;margin:1rem 0 1.4rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}
.doc-timeline>li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;display:flex;flex-direction:column;gap:.25rem;min-width:0}
.doc-timeline .tl-n{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--accent);color:#fff;font-size:.78rem;font-weight:700}
.doc-timeline .tl-name{font-size:.92rem;line-height:1.25}
.doc-timeline .tl-hint{font-size:.8rem;color:var(--muted);line-height:1.35}
.doc-timeline .tl-docs{margin-top:auto}
.doc-timeline .tl-docs{list-style:none;margin:.35rem 0 0;padding:.35rem 0 0;border-top:1px solid var(--line);font-size:.8rem}
.doc-timeline .tl-docs li{margin:.18rem 0;overflow-wrap:anywhere;line-height:1.3}
.doc-timeline .tl-docs li::before{content:"›";color:var(--accent);margin-right:.3rem;font-weight:700}
@media (max-width:860px){.doc-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:400px){.doc-timeline{grid-template-columns:1fr}}
.doc-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0 1rem}
.doc-filters a{font-size:.8rem;padding:.25rem .65rem;border:1px solid var(--line);border-radius:999px;color:var(--text);background:var(--card)}
.doc-filters a.on{background:var(--accent);border-color:var(--accent);color:#fff}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem;margin:.4rem 0 1.4rem}
.doc-card{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.doc-card h3{font-size:1rem;margin:0;line-height:1.3}
.doc-card p{font-size:.85rem;margin:0;color:var(--muted)}
.doc-tags{display:flex;flex-wrap:wrap;gap:.3rem}
.doc-tag{font-size:.68rem;font-weight:700;letter-spacing:.03em;padding:.1rem .45rem;border-radius:6px;background:var(--soft);color:var(--muted)}
.doc-tag.fee{background:#ecfdf5;color:#047857}
.doc-tag.tpl{background:#eef2ff;color:#4338ca}
.doc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.6rem;margin:1rem 0}
.doc-facts div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;min-width:0}
.doc-facts .k{display:block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.doc-facts .v{font-size:.9rem;overflow-wrap:anywhere}
.doc-steps{padding-left:1.3rem}.doc-steps li{margin:.35rem 0}
.doc-mistakes li{margin:.3rem 0}
.doc-tpl{position:relative;margin:1rem 0}
.doc-tpl pre{white-space:pre-wrap;word-break:break-word;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:1rem;font-size:.86rem;line-height:1.55;max-width:100%;overflow-x:auto}
.doc-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}
.doc-sources li{margin:.25rem 0;overflow-wrap:anywhere}
.doc-box{margin-top:1.4rem}.doc-box ul{list-style:none;padding:0;margin:0}.doc-box li{margin:.35rem 0}
@media print{
  .hdr,.ft,.pagebar,.totop,.doc-actions,.doc-noprint,nav[aria-label="breadcrumb"],.pfaq{display:none!important}
  body{background:#fff}.card,.doc-facts div{box-shadow:none}
  .doc-tpl pre{background:#fff;border:0;padding:0;font-size:11pt}
  body.doc-print-tpl .doc-page>*:not(.doc-tpl){display:none!important}
}
/* 시험 달력 (/documents/tests) · 학년 배치 (/documents/placement) */
.test-chips{display:flex;flex-direction:column;gap:.45rem;margin:1rem 0 .4rem}
.test-chip-row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.test-chip-row>.tiny{flex:0 0 100%;text-transform:uppercase;letter-spacing:.05em;font-size:.68rem}
.test-chip{display:inline-flex;flex-direction:column;gap:.05rem;padding:.3rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);text-decoration:none;font-size:.8rem;line-height:1.2;min-width:0}
.test-chip span{font-size:.7rem;color:var(--muted)}
.test-chip.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.test-month{margin:.4rem 0 1rem}
.test-month-h{font-size:.95rem;margin:.6rem 0 .3rem;padding-bottom:.25rem;border-bottom:1px solid var(--line)}
.test-events{list-style:none;margin:0;padding:0}
.test-events li{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto;gap:.6rem;align-items:start;padding:.45rem .2rem;border-bottom:1px dashed var(--line)}
.test-events .ev-date{font-weight:700;font-size:.85rem}
.test-events .ev-kind{font-size:.8rem;font-weight:600}
.test-events li.ev-exam .ev-kind{color:var(--accent)}
.test-events li.ev-registration .ev-kind,.test-events li.ev-late_registration .ev-kind{color:#b45309}
.test-events li.ev-scores .ev-kind{color:#047857}
.test-events .ev-body{min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){.test-events li{grid-template-columns:5.6rem minmax(0,1fr)}.test-events .ev-src{grid-column:2}}
.test-card h3 a{color:inherit}
.test-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem .6rem;font-size:.82rem;margin:.3rem 0}
.test-dl dt{color:var(--muted);font-weight:600}.test-dl dd{margin:0;overflow-wrap:anywhere}
@media (max-width:400px){.test-dl{grid-template-columns:1fr}}
.test-one{margin:.6rem 0 1.2rem}.test-one .test-card{max-width:860px}
.doc-prep{border:1px dashed #a5b4fc;background:#eef2ff;color:#312e81;border-radius:10px;padding:.5rem .7rem;font-size:.82rem;margin:.4rem 0}
.doc-prep a{color:#3730a3;font-weight:600}
.doc-prep-lg ul{margin:.3rem 0 .4rem;padding-left:1.1rem}
.doc-cbe{margin:1.4rem 0}
.test-table table{border-collapse:collapse;width:100%;font-size:.85rem}
.test-table th,.test-table td{border:1px solid var(--line);padding:.35rem .5rem;text-align:left;vertical-align:top}
.test-table thead th{background:var(--soft)}
.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem;margin:.4rem 0 1.4rem}
.state-card{min-width:0}
.state-topic{border-top:1px solid var(--line);padding-top:.5rem;margin-top:.5rem}
.state-topic ul{padding-left:1.1rem;margin:.2rem 0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .doc-prep{background:#1e1b4b;color:#e0e7ff;border-color:#4338ca}:root:not([data-theme="light"]) .doc-prep a{color:#c7d2fe}}
:root[data-theme="dark"] .doc-prep{background:#1e1b4b;color:#e0e7ff;border-color:#4338ca}:root[data-theme="dark"] .doc-prep a{color:#c7d2fe}
.test-table{overflow-x:auto;max-width:100%}
