:root{
  --bg:#f3f4f6;
  --ink:#1c1c1c;
  --muted:#6b7280;
  --line:#e5e7eb;
  --danger:#d92d20;
  --soft:#f8fafc;
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font-family:"Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif;font-size:15px;line-height:1.5}
button,input,select,textarea{font:inherit;color:inherit}
.admin-body{min-height:100vh;background:var(--bg)}
.admin-top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;height:60px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line)}
.admin-top a{color:var(--ink);font-size:15px;font-weight:700;text-decoration:none}
.admin-top button{border:0;background:none;color:var(--muted);font-size:14px;cursor:pointer}
.admin-main{width:min(1040px,calc(100% - 48px));margin:32px auto 72px}
.dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.dash-head h1,.page-title,.page-head h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-0.02em}
.page-title{margin-bottom:18px}
.page-head{margin-bottom:18px}
.page-head p{margin:6px 0 0;color:var(--muted);font-size:14px}
.black-button{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border:0;border-radius:8px;background:#171717;color:#fff;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}
.black-button:hover{background:#000}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px}
.post-list{padding:4px 20px}
.post-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.post-list article:last-child{border-bottom:0}
.post-copy h2{margin:0 0 4px;font-size:16px;font-weight:700;line-height:1.45}
.post-copy p,.empty{margin:0;color:var(--muted);font-size:13px}
.row-actions{display:flex;align-items:center;gap:2px}
.row-actions a,.row-actions button,.form-actions a,.back-link a{display:inline-flex;align-items:center;height:32px;padding:0 8px;border:0;border-radius:6px;background:none;color:#374151;font-size:14px;text-decoration:none;cursor:pointer}
.row-actions a:hover,.row-actions button:hover,.form-actions a:hover,.back-link a:hover{background:#f3f4f6}
.danger,.delete-post button{border:0;background:none;color:var(--danger);cursor:pointer}
.row-actions .danger{height:32px;padding:0 8px;border-radius:6px;font-size:14px}
.row-actions .danger:hover{background:#fef2f2}
.edit-form{display:grid;gap:14px;max-width:820px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px}
.edit-form label,.editor-label{display:grid;gap:6px;color:#374151;font-size:13px;font-weight:600}
input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:8px;background:#fff}
input[type="text"],input[type="password"],input[type="url"],input[type="datetime-local"],input:not([type]),.edit-form input,.comment-box input,.reply-form input,select{
  height:42px;padding:0 12px;
}
textarea{min-height:96px;padding:10px 12px;resize:vertical;line-height:1.55}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border:1px solid #d0d5dd;border-bottom:0;border-radius:8px 8px 0 0;background:var(--soft)}
.editor-toolbar button,.upload-button,.tool-color{display:inline-flex;align-items:center;justify-content:center;width:auto;height:32px;min-width:32px;margin:0;padding:0 8px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:13px;font-weight:600;cursor:pointer}
.editor-toolbar select{width:auto;height:32px;padding:0 8px;font-size:13px}
.tool-color{gap:4px;padding-right:4px}
.tool-color input{width:22px;height:22px;padding:0;border:0;background:transparent}
.rich-editor{height:460px;overflow:auto;border:1px solid #d0d5dd;border-radius:0 0 8px 8px;padding:16px 18px;background:#fff;font-size:15px;line-height:1.7;outline:none}
.rich-editor img{max-width:100%;height:auto}
.rich-editor table{border-collapse:collapse}
.rich-editor td{border:1px solid #ccc;padding:6px}
.check-row{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.check-row input{width:16px;height:16px;padding:0}
.form-actions{display:flex;align-items:center;gap:8px}
.delete-post{max-width:820px;margin-top:12px;text-align:right}
.delete-post button{height:32px;padding:0 8px;font-size:14px}
.back-link{margin:0 0 10px}
.comment-box,.managed-comments{max-width:820px}
.comment-box{margin:0 0 20px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px}
.comment-box h2{margin:0 0 12px;font-size:15px}
.comment-box form,.reply-form{display:grid;gap:10px}
.pair{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px}
.file-pick{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;font-weight:500}
.file-pick label{width:auto}
.file-pick span{display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}
.file-pick em{font-style:normal}
.comment-box .black-button,.reply-form .black-button{justify-self:start;min-width:88px}
input[type="file"]{height:auto;padding:8px 0;border:0;font-size:13px}
.managed-comments{padding:4px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}
.managed-comments article{padding:16px 0;border-bottom:1px solid var(--line)}
.managed-comments article:last-child{border-bottom:0}
.managed-comments article.is-reply{margin-left:28px;padding-left:14px;border-left:2px solid #e5e7eb}
.comment-line{display:flex;align-items:center;gap:8px}
.comment-line b{font-size:14px}
.comment-line form{margin-left:auto}
.managed-comments p{margin:8px 0;font-size:15px;line-height:1.6;white-space:pre-wrap}
.managed-comments time{display:block;margin-top:4px;color:#9ca3af;font-size:12px}
.reply-toggle{display:inline-flex;align-items:center;height:28px;margin-top:6px;padding:0;border:0;background:none;color:#4b5563;font-size:13px;cursor:pointer}
.reply-form{margin-top:10px;padding:12px;background:var(--soft);border-radius:8px}
.vote-marks{display:grid;color:#c5c5c5;font-size:10px;line-height:1.05}
.comment-photo{display:block;max-width:180px;max-height:140px;width:auto;height:auto;margin-top:8px;border-radius:8px;border:1px solid var(--line)}
.login-body{min-height:100vh;display:grid;place-items:center;background:var(--bg)}
.login-card{width:min(92%,400px);padding:32px;background:#fff;border:1px solid var(--line);border-radius:16px}
.login-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:#171717;color:#fff;font-weight:700}
.login-card h1{margin:16px 0 6px;font-size:22px}
.login-card>p{margin:0 0 20px;color:var(--muted);font-size:14px}
.login-card form{display:grid;gap:12px}
.login-card label{display:grid;gap:6px;font-size:13px;font-weight:600}
.login-card button.primary-button{display:inline-flex;justify-content:center;align-items:center;width:100%;height:44px;margin-top:4px;border:0;border-radius:8px;background:#171717;color:#fff;font-size:15px;cursor:pointer}
.flash-list{margin:0 0 16px}
.flash{padding:12px 14px;border-radius:8px;background:#eef4ff;color:#1849a9;font-size:14px}
.flash.error{background:#fef3f2;color:#b42318}
.flash.success{background:#ecfdf3;color:#067647}
.empty{padding:18px 0}
@media(max-width:800px){
  .admin-main{width:min(100% - 28px,1040px);margin-top:20px}
  .post-list article,.field-2,.stat-row,.pair{grid-template-columns:1fr}
  .row-actions{flex-wrap:wrap}
  .rich-editor{height:360px}
  .post-list,.managed-comments,.comment-box,.edit-form{padding-left:14px;padding-right:14px}
}
