:root{font-family:system-ui,-apple-system,'Noto Sans KR',sans-serif;color:#253b35;background:#f8faf7}*{box-sizing:border-box}body{margin:0}a{text-decoration:none;color:inherit}.wrap{max-width:1160px;margin:auto;padding:0 24px}.top{background:white;border-bottom:1px solid #e8eee9}.nav{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:30px;font-weight:800;color:#386d58}.brand span{font-size:23px}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#8da79b}.nav nav{display:flex;align-items:center;gap:22px;font-size:14px}.nav form{margin:0}.navbtn{border:0;background:#edf5ef;padding:10px 14px;border-radius:10px;color:#3c6c58;cursor:pointer}.user{color:#7c8d82}.footer{text-align:center;padding:55px 12px;color:#98a69c;font-size:12px}.card{background:#fff;border:1px solid #e6eee7;border-radius:20px;box-shadow:0 8px 30px #214d3210}.login{max-width:490px;margin:80px auto 35px;padding:48px}.eyebrow{font-size:12px;letter-spacing:2.4px;font-weight:800;color:#7ca68d}.login h1,.hero h1{font-size:36px;line-height:1.45;letter-spacing:-1.4px;margin:16px 0}.login h1 em,.hero h1 em{font-style:normal;color:#5c9777}.muted,.hint{color:#839187;line-height:1.8}.hint{font-size:12px;text-align:center;margin-top:22px}label{display:block;font-size:13px;font-weight:700;margin:18px 0 8px}input,select,textarea{width:100%;border:1px solid #dfe8df;background:#fff;border-radius:11px;padding:14px 15px;font:inherit;margin-top:8px;outline-color:#6b9b7e}input[type=file]{padding:11px}.btn{display:inline-block;border:0;border-radius:11px;padding:14px 22px;background:#427d60;color:#fff;font-weight:700;cursor:pointer;font-size:14px;text-align:center}.btn:hover{background:#32694d}.full{width:100%;margin-top:15px}.secondary{background:#edf5ef;color:#386f51}.secondary:hover{background:#deeee1}.hero{margin-top:38px;padding:65px 65px;border-radius:25px;background:linear-gradient(115deg,#edf6e9,#f7f8ed);position:relative}.hero h1{font-size:43px}.hero p{color:#6d8976}.sectionhead{margin-top:45px}.sectionhead h2,.panel h2{font-size:23px;margin-bottom:4px}.filters{display:flex;gap:12px;margin:22px 0}.filters input,.filters select{margin:0}.filters input{flex:1}.filters select{width:180px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.material{padding:28px;display:flex;flex-direction:column;align-items:flex-start;min-height:320px}.fileicon{display:grid;place-items:center;background:#eef7ef;border-radius:16px;width:62px;height:62px;font-size:29px}.tag{display:inline-block;background:#eff6ec;color:#558367;border-radius:20px;padding:5px 10px;font-size:11px;font-weight:800;margin-top:19px}.material h3{margin:13px 0 4px;font-size:19px}.material p{color:#809085;line-height:1.7;font-size:13px;flex:1}.meta{font-size:11px;color:#9baa9e;margin-bottom:17px;overflow-wrap:anywhere}.empty{padding:35px}.adminhead{margin-top:48px}.adminhead h1{font-size:33px;margin:10px 0}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:26px 0}.stats .card{padding:25px}.stats strong{display:block;font-size:36px;color:#438261}.stats span{color:#7e9183;font-size:13px}.panel{padding:32px;margin:24px 0}.twocol,.threecol{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.threecol{grid-template-columns:repeat(3,1fr)}.list{margin-top:30px;border-top:1px solid #edf1ed}.listrow{padding:17px 0;border-bottom:1px solid #edf1ed;display:flex;justify-content:space-between;align-items:center;gap:10px}.listrow small{display:block;color:#91a095;margin-top:6px;overflow-wrap:anywhere}.listrow .tag{margin:0}.danger{background:#fff0ee;border:0;border-radius:8px;padding:10px 15px;color:#bf5d52;cursor:pointer}.notice{max-width:500px;margin:80px auto;padding:35px}@media(max-width:750px){.nav{flex-direction:column;padding-top:20px;padding-bottom:20px}.nav nav{flex-wrap:wrap;justify-content:center;gap:12px}.login{margin:30px auto;padding:28px}.hero{padding:40px 28px}.hero h1{font-size:32px}.cards{grid-template-columns:1fr}.filters,.twocol,.threecol{display:block}.filters>*{margin-bottom:10px!important}.filters select{width:100%}.panel{padding:23px}}/* v2 extensions */
.admin-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px;margin:22px 0 42px}.admin-links a{display:block;padding:23px;text-decoration:none;color:#2f5347;font-weight:700;transition:transform .15s,box-shadow .15s}.admin-links a:hover{transform:translateY(-2px);box-shadow:0 8px 24px #2c54431a}.actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.actions form{margin:0}.inline{display:inline-flex;align-items:center;gap:8px;margin:8px 14px 8px 0}.inline input{width:auto}.checkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));padding:14px;background:#f5f8f4;border-radius:12px;margin-bottom:18px}.preline{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85}.faq-list{display:grid;gap:15px;margin-bottom:50px}.faq-list summary{cursor:pointer;font-weight:700}.faq-list details p{padding-top:15px}.listrow{gap:15px}.listrow small{display:block}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.panel{margin-bottom:24px}.panel form>label{margin-bottom:12px}.panel input[type=checkbox]{accent-color:#487f67}.panel .list{margin-top:22px}textarea{resize:vertical}.nav{gap:14px}.nav nav{flex-wrap:wrap;gap:12px}@media(max-width:700px){.listrow{flex-wrap:wrap}.actions{width:100%}.nav nav{font-size:12px}.admin-links{grid-template-columns:1fr 1fr}}

/* v2.2 header refinement */
.top{position:sticky;top:0;z-index:50;box-shadow:0 3px 16px rgba(24,67,44,.04)}
.nav{min-height:78px;gap:28px}.brand{flex-shrink:0;white-space:nowrap}.brand span{line-height:1.15}.brand small{margin-top:6px}.nav nav{justify-content:flex-end;gap:8px 12px}.nav nav>a{padding:10px 12px;border-radius:10px;white-space:nowrap;font-weight:600;color:#536e60;transition:background .2s}.nav nav>a:hover{background:#eef6ef;color:#2f6e4c}.nav-user{font-size:12px;font-weight:700;color:#4d8165;padding:8px 6px;white-space:nowrap}.navbtn{white-space:nowrap;font-weight:700}.nav nav form{display:inline-flex}
@media(max-width:1020px){.nav{flex-direction:column;justify-content:center;padding-top:16px;padding-bottom:14px;gap:14px}.nav nav{justify-content:center}}
@media(max-width:700px){.nav nav{gap:4px 6px}.nav nav>a{padding:9px 8px}.brand span{font-size:20px}.brand small{font-size:8px}.nav-user{width:100%;text-align:center}}

/* Terra Story official branding v2.3 */
:root{--terra-olive:#52642f;--terra-gold:#94713c;--terra-cream:#fbfaf5}
body{background:var(--terra-cream)}
.top{border-bottom:1px solid #e9e9df;box-shadow:0 2px 16px #34412508}
.nav{min-height:88px}
.brand{gap:11px;color:var(--terra-olive);flex-shrink:0}
.brand-logo{width:56px;height:56px;object-fit:contain;border-radius:50%}
.brand span{font-size:21px;line-height:1.2}
.brand small{font-size:9px;letter-spacing:1.35px;margin-top:5px}
.nav nav a:hover{color:var(--terra-olive)}
.btn{background:var(--terra-olive)}.btn:hover{background:#3e4d22}
.eyebrow{color:var(--terra-olive)}
.hero{background:linear-gradient(115deg,#eef1e3,#f8f4e9)}
.footer{border-top:1px solid #e8eadf;margin-top:60px}
.footer-logo{width:160px;height:auto;display:block;margin:0 auto 16px}
@media(max-width:750px){.brand-logo{width:48px;height:48px}.nav{min-height:0}.brand span{font-size:19px}}

/* v2.3.3: 수업자료 첨부파일 다운로드 버튼 대비 및 정렬 수정 */
.listrow:has(a[href^="/download/"]) {align-items:center;}
.listrow:has(a[href^="/download/"]) > b {color:#293b2b;overflow-wrap:anywhere;min-width:0;flex:1;line-height:1.6;}
.listrow a.btn.secondary[href^="/download/"] {background:#52642f;color:#ffffff;border:1px solid #52642f;flex-shrink:0;white-space:nowrap;font-weight:750;box-shadow:0 2px 6px rgba(40,55,25,.12);}
.listrow a.btn.secondary[href^="/download/"]:hover {background:#3e4d22;color:#ffffff;border-color:#3e4d22;}
.listrow a.btn.secondary[href^="/download/"]:focus-visible {outline:3px solid #c9ad6a;outline-offset:3px;}
@media(max-width:550px){.listrow:has(a[href^="/download/"]) {align-items:stretch;}.listrow a.btn.secondary[href^="/download/"] {width:100%;}}
