:root{--primary:#2f3c5e;--primary-dark:#212b45;--accent:#b98a3c;--bg:#f7f6f3;--surface:#fff;--text:#22252a;--text-muted:#6b7280;--border:#e3e1db;--danger:#b0413e;color:var(--text);background-color:var(--bg);font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;line-height:1.6}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--primary);color:#fff;align-items:center;gap:2rem;padding:.9rem 1.5rem;display:flex}.brand{color:#fff;font-size:1.35rem;font-weight:700}.brand:hover{text-decoration:none}.brand-sub{color:var(--accent);margin-left:.15rem;font-size:.85rem}.nav{flex:1;gap:1.1rem;min-width:0;display:flex}.nav a{color:#ffffffd1;white-space:nowrap;font-size:.95rem}.nav a.active{color:#fff;font-weight:600}.header-right{align-items:center;gap:.7rem;display:flex}.user-name{white-space:nowrap;font-size:.9rem}.role-badge{background:var(--accent);color:#fff;vertical-align:middle;border-radius:3px;margin-left:.4rem;padding:.1rem .35rem;font-size:.7rem;font-style:normal;font-weight:700}.main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:1rem;font-size:.8rem}.btn-primary,.btn-ghost,.btn-danger{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;padding:.45rem 1rem;font-size:.92rem;text-decoration:none;display:inline-block}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);text-decoration:none}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{color:inherit;border-color:var(--border);background:0 0}.header .btn-ghost{color:#fff;border-color:#fff6}.btn-ghost:hover{border-color:var(--primary);text-decoration:none}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-text{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem}.btn-text:hover{color:var(--danger)}.home{text-align:center;padding:3rem 0}.home-title{margin-bottom:1.5rem;font-size:2rem}.home-title strong{color:var(--primary)}.home-verse{max-width:560px;color:var(--text-muted);margin:0 auto 1rem;font-style:italic}.home-desc{margin-bottom:2rem}.home-actions{justify-content:center;gap:.8rem;margin-bottom:1.2rem;display:flex}.home-note{color:var(--text-muted);font-size:.85rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:400px;margin:2rem auto;padding:2rem}.form{flex-direction:column;gap:1rem;display:flex}.form label{flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;display:flex}.form input,.form textarea,.form select{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:.55rem .7rem;font-family:inherit;font-size:16px}.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--primary);outline-offset:-1px}.checkbox-label{align-items:center;flex-direction:row!important;font-weight:500!important}.form-error{color:var(--danger);margin:0;font-size:.88rem}.auth-switch{text-align:center;margin-top:1.2rem;font-size:.88rem}.editor-form{max-width:720px}.editor-actions{justify-content:flex-end;gap:.6rem;display:flex}.page-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.page-head h1{margin:0;font-size:1.5rem}.search-bar{gap:.5rem;margin-bottom:1rem;display:flex}.search-bar input{border:1px solid var(--border);border-radius:6px;flex:1;max-width:280px;padding:.45rem .7rem;font-size:16px}.comment-form textarea{font-size:16px}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow-x:auto}.post-table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.92rem}.post-table th,.post-table td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:.65rem .8rem}.post-table .col-title{text-align:left;white-space:normal;width:55%}.post-table tbody tr:last-child td{border-bottom:none}.pinned-row{background:#fbf7ee}.pin-badge{background:var(--accent);color:#fff;vertical-align:middle;border-radius:3px;margin-right:.5rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.pagination{flex-wrap:wrap;justify-content:center;gap:.3rem;margin-top:1.2rem;display:flex}.page-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:5px;min-width:2rem;padding:.3rem .5rem}.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.page-message{color:var(--text-muted);text-align:center;padding:2rem 0}.post-detail{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.6rem}.post-detail h1{margin:0 0 .4rem;font-size:1.4rem}.post-meta{color:var(--text-muted);border-bottom:1px solid var(--border);margin:0 0 1.2rem;padding-bottom:1rem;font-size:.85rem}.post-content{white-space:pre-wrap;min-height:6rem}.post-actions{border-top:1px solid var(--border);gap:.6rem;margin-top:1.6rem;padding-top:1rem;display:flex}.comments{margin-top:2rem}.comments h2{font-size:1.05rem}.comments ul{flex-direction:column;gap:.8rem;margin:0 0 1.2rem;padding:0;list-style:none;display:flex}.comments li{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.8rem 1rem}.comment-head{color:var(--text-muted);align-items:center;gap:.6rem;margin-bottom:.3rem;font-size:.85rem;display:flex}.comment-head strong{color:var(--text)}.comments li p{white-space:pre-wrap;margin:0}.comment-form{align-items:flex-start;gap:.6rem;display:flex}.comment-form textarea{border:1px solid var(--border);resize:vertical;border-radius:6px;flex:1;padding:.6rem .7rem;font-family:inherit}.btn-accent{background:var(--accent);color:#fff;white-space:nowrap;border-radius:6px;padding:.32rem .8rem;font-size:.85rem;font-weight:700;display:inline-block}.btn-accent:hover{filter:brightness(.94);text-decoration:none}.auth-desc{color:var(--text-muted);margin:-.4rem 0 1.2rem;font-size:.88rem}.signup-done{margin-bottom:1.4rem;line-height:1.8}.signup-done-btn{text-align:center;display:block}.tab-bar{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.tab{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.32rem .9rem;font-size:.88rem}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.admin{background:var(--bg);min-height:100vh}.admin-header{z-index:20;background:var(--primary-dark);color:#fff;align-items:center;gap:.9rem;height:56px;padding:0 1.2rem;display:flex;position:fixed;top:0;left:0;right:0}.sidebar-toggle{color:#fff;cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:1.15rem}.admin-brand{color:#fff;white-space:nowrap;font-size:1.15rem;font-weight:700}.admin-brand:hover{text-decoration:none}.admin-brand-sub{color:var(--accent);font-size:.78rem}.admin-header-right{align-items:center;gap:.6rem;margin-left:auto;display:flex}.admin-header-right .btn-ghost{color:#fff;border-color:#fff6;padding:.3rem .7rem;font-size:.85rem}.admin-sidebar{z-index:15;background:var(--surface);border-right:1px solid var(--border);width:220px;padding:1rem .8rem;transition:transform .2s;position:fixed;top:56px;bottom:0;left:0;overflow-y:auto}.sidebar-closed .admin-sidebar{transform:translate(-100%)}.admin-menu-group{flex-direction:column;margin-bottom:.4rem;display:flex}.admin-menu-title{color:var(--text-muted);padding:.55rem .6rem .25rem;font-size:.78rem;font-weight:700}.admin-menu-item{color:var(--text);border-radius:6px;padding:.45rem .6rem .45rem 1.1rem;font-size:.92rem;display:block}nav>.admin-menu-item{padding-left:.6rem;font-weight:600}.admin-menu-item:hover{background:var(--bg);text-decoration:none}.admin-menu-item.active{background:var(--primary);color:#fff}.admin-menu-item.disabled{color:#b6b3ac;cursor:default;font-size:.85rem}.admin-main{padding:calc(56px + 1.6rem) 1.6rem 2.5rem calc(220px + 1.6rem);transition:padding-left .2s}.sidebar-closed .admin-main{padding-left:1.6rem}.admin-split{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:1.2rem;display:grid}.admin-list-pane{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.admin-list-pane .search-bar{margin-bottom:.8rem}.admin-list-pane .search-bar input{max-width:none}.admin-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.admin-list-item{text-align:left;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;gap:.15rem;width:100%;padding:.6rem .8rem;font-family:inherit;display:flex}.admin-list-item:hover{border-color:var(--primary)}.admin-list-item.active{border-color:var(--primary);background:#eef1f8}.admin-list-name{font-size:.95rem;font-weight:600}.admin-list-sub{color:var(--text-muted);word-break:break-all;font-size:.82rem}.admin-detail-pane{min-width:0}.admin-detail-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.4rem}.admin-detail-card h2{margin:0 0 1rem;font-size:1.2rem}.detail-list{flex-direction:column;gap:.7rem;margin:0 0 1.4rem;display:flex}.detail-list>div{align-items:center;gap:1rem;display:flex}.detail-list dt{width:90px;color:var(--text-muted);flex-shrink:0;font-size:.85rem}.detail-list dd{word-break:break-all;margin:0}.detail-list select{border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem;font-family:inherit}.detail-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.6rem;padding-top:1rem;display:flex}.status-chip{vertical-align:middle;border-radius:3px;margin-left:.4rem;padding:.08rem .4rem;font-size:.72rem;font-style:normal}.status-chip.status-pending{color:#8a6410;background:#fdf3dc}.status-chip.status-active{color:#2c7a44;background:#e5f2e9}.status-chip.status-suspended{color:var(--danger);background:#f8e4e3}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;margin-bottom:1.4rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:10px;flex-direction:column;gap:.2rem;padding:1.1rem 1.2rem;display:flex}.stat-card:hover{border-color:var(--primary);text-decoration:none}.stat-card.highlight{border-color:var(--accent);background:#fbf7ee}.stat-value{color:var(--primary);font-size:1.7rem;font-weight:700}.stat-card.highlight .stat-value{color:var(--accent)}.stat-label,.admin-note{color:var(--text-muted);font-size:.85rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-backdrop{z-index:12;cursor:pointer;background:#00000059;border:none;display:none;position:fixed;inset:56px 0 0}.fallback{text-align:center;max-width:460px;margin:4rem auto;padding:2rem}.fallback h1{margin-bottom:.8rem;font-size:1.4rem}.fallback p{color:var(--text-muted);margin-bottom:1.4rem}@media (width<=1024px){.header{gap:1.2rem}.nav{gap:.9rem}}@media (width<=767px){.header{flex-wrap:wrap;gap:.2rem .8rem;padding:.7rem 1rem .55rem}.brand{margin-right:auto;font-size:1.2rem}.header-right{gap:.55rem}.header .btn-primary,.header .btn-ghost{padding:.32rem .7rem;font-size:.85rem}.user-name{font-size:.85rem}.nav{flex-basis:100%;order:3;gap:.2rem;margin:.35rem -.5rem 0;overflow-x:auto}.nav a{padding:.25rem .5rem}.main{padding:1.4rem 1rem 2.5rem}.post-detail{padding:1.2rem 1rem}.post-detail h1{font-size:1.2rem}.home{padding:1.8rem 0}.home-title{font-size:1.55rem}.home-verse{font-size:.92rem}}@media (width<=1024px){.admin-main{padding-left:1.2rem;padding-right:1.2rem}.admin-sidebar{box-shadow:2px 0 12px #0000001f}.admin-split{grid-template-columns:1fr}.admin-backdrop{display:block}}@media (width<=767px){.admin-header{gap:.6rem;padding:0 .8rem}.admin-header-right .user-name{display:none}}@media (width<=480px){.form input,.form textarea,.form select,.search-bar input,.comment-form textarea{font-size:16px}.auth-card{margin:.8rem auto;padding:1.4rem 1.2rem}.page-head h1{font-size:1.3rem}.post-table th,.post-table td{padding:.55rem .5rem}.post-table .col-views{display:none}.comment-form{flex-direction:column}.comment-form textarea{width:100%}.comment-form .btn-primary{align-self:flex-end}.post-actions{flex-wrap:wrap}.editor-actions{justify-content:stretch}.editor-actions .btn-primary,.editor-actions .btn-ghost{text-align:center;flex:1}}
