/* SSR 공통 스타일 — templates.js의 <style> 인라인 블록에서 추출 (CSP 대응, 2026-07-11) */
:root{--bg:#0b1020;--panel:#121a33;--line:#24304f;--text:#e8ecf7;--muted:#9aa7c7;--accent:#5b8cff;--accent2:#7dd3fc}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:'Apple SD Gothic Neo','Pretendard','Malgun Gothic',system-ui,sans-serif;line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--accent);text-decoration:none}
.wrap{max-width:860px;margin:0 auto;padding:0 20px;width:100%}
header.site{padding:20px 0}
header.site .wrap{display:flex;justify-content:space-between;align-items:center}
.logo{font-size:20px;font-weight:800;color:var(--text)}
.logo b{color:var(--accent)}
main{flex:1}
footer.site{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:13px;margin-top:60px}
@media (max-width:560px){article{padding:22px 18px !important}footer.site{margin-top:36px}}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:10px 22px;border-radius:10px;font-weight:700;border:none;cursor:pointer;font-size:15px}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}

/* 인라인 style= 속성 대체 클래스 */
.page-pad{padding-top:40px}
.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:34px}
.article-title{font-size:26px;margin-bottom:18px}
.article-body{white-space:pre-wrap;font-size:16px;color:var(--text)}
.article-meta{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}
.meta-note{color:var(--muted);font-size:13px}
.redirecting{padding-top:60px;text-align:center}
.nf{padding-top:80px;text-align:center}
.nf-code{font-size:60px;margin-bottom:10px}
.nf-desc{color:var(--muted);margin-bottom:26px}

/* 비밀번호 보호 링크 게이트 */
.gate{max-width:420px;margin:60px auto 0;text-align:center}
.gate-lock{font-size:44px;margin-bottom:12px}
.gate-title{font-size:22px;margin-bottom:8px}
.gate-desc{color:var(--muted);font-size:14px;margin-bottom:22px}
.gate-form{display:flex;flex-direction:column;gap:12px}
.gate-input{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--text);font-size:16px;width:100%}
.gate-input:focus{outline:none;border-color:var(--accent)}
.gate-btn{width:100%}
.gate-error{color:#ff9a9a;font-size:14px;margin-top:14px}
