:root{--bg:#f4f6f9;--panel:#fff;--line:#d9dde5;--text:#111827;--muted:#6b7280;--primary:#1f3a5f;--primary2:#2f5f99;--danger:#b91c1c;--ok:#047857;--warn:#b45309}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,'Noto Sans KR',sans-serif;font-size:14px}.loginWrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.loginBox{width:100%;max-width:430px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 35px rgba(15,23,42,.08);padding:34px}.loginBox h1{margin:0 0 8px;font-size:29px;letter-spacing:-.04em}.loginBox .desc{margin:0 0 26px;color:var(--muted)}.formGroup{margin-bottom:14px}.formGroup label{display:block;margin-bottom:7px;font-weight:700}.input,.textarea{width:100%;border:1px solid #cfd5df;border-radius:10px;padding:11px 12px;font-size:14px;background:#fff}.textarea{min-height:160px;resize:vertical;line-height:1.55}.input:focus,.textarea:focus{outline:none;border-color:var(--primary2);box-shadow:0 0 0 3px rgba(47,95,153,.13)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:11px 17px;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none}.btnPrimary{background:var(--primary);color:#fff}.btnPrimary:hover{background:var(--primary2)}.btnLight{background:#eef2f7;color:#111827}.btnDanger{background:#fee2e2;color:#991b1b}.alert{border-radius:10px;padding:12px 14px;margin-bottom:15px}.alertDanger{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.alertOk{background:#ecfdf5;border:1px solid #bbf7d0;color:#065f46}.adminShell{min-height:100vh;display:flex}.sidebar{width:245px;background:#111827;color:#fff;position:fixed;top:0;bottom:0;left:0;padding:22px 16px;overflow:auto}.brand{font-size:22px;font-weight:800;margin-bottom:4px;letter-spacing:-.04em}.brandSub{font-size:12px;color:#9ca3af;margin-bottom:24px}.navTitle{margin:18px 0 8px;color:#9ca3af;font-size:12px;font-weight:700}.nav a{display:block;color:#e5e7eb;text-decoration:none;border-radius:10px;padding:10px 11px;margin:3px 0}.nav a:hover,.nav a.active{background:#1f2937;color:#fff}.main{margin-left:245px;width:calc(100% - 245px);min-height:100vh}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:5}.page{padding:24px;max-width:1180px}.page h1{margin:0 0 18px;font-size:25px;letter-spacing:-.04em}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:18px}.tableForm{width:100%;border-collapse:collapse}.tableForm th{width:210px;background:#f8fafc;text-align:left;border:1px solid #e5e7eb;padding:13px;vertical-align:middle}.tableForm td{border:1px solid #e5e7eb;padding:13px}.formActions{display:flex;justify-content:center;gap:8px;margin-top:18px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.statGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat .k{color:var(--muted);font-size:13px}.stat .v{font-size:22px;font-weight:800;margin-top:8px}.helpText{font-size:12px;color:var(--muted);margin-top:6px}.inlineInputs{display:flex;align-items:center;gap:7px}.inlineInputs .input{max-width:130px}.editorNotice{padding:10px 12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:10px;margin-bottom:10px}.emptyBox{padding:36px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #cbd5e1;border-radius:16px}@media(max-width:840px){.adminShell{display:block}.sidebar{position:relative;width:100%;height:auto}.main{margin-left:0;width:100%}.topbar{position:relative}.page{padding:16px}.tableForm th,.tableForm td{display:block;width:100%}.statGrid,.grid2{grid-template-columns:1fr}.inlineInputs{flex-wrap:wrap}}
.searchForm{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.searchForm .input{max-width:240px}.listTable{width:100%;border-collapse:collapse;background:#fff}.listTable th{background:#f8fafc;border:1px solid #e5e7eb;padding:11px;text-align:left}.listTable td{border:1px solid #e5e7eb;padding:10px;vertical-align:middle}.center{text-align:center}.right{text-align:right}.muted{color:var(--muted)}.listMeta{margin-bottom:10px;color:var(--muted)}.actions{display:flex;gap:6px;align-items:center}.inlineDelete{display:inline}.inlineForm{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.small{max-width:130px}.required{color:var(--danger)}.thumb{max-width:120px;max-height:90px;border:1px solid #e5e7eb;border-radius:8px;object-fit:cover;background:#f8fafc}.smallThumb{width:64px;height:64px}.bannerThumb{max-width:220px;max-height:90px}.thumbLine{margin-bottom:8px}.pager{display:flex;gap:5px;justify-content:center;margin-top:16px;flex-wrap:wrap}.pager a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border:1px solid #d1d5db;border-radius:8px;text-decoration:none;color:#111827;background:#fff}.pager a.active{background:var(--primary);color:#fff;border-color:var(--primary)}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:840px){.actions{flex-wrap:wrap}.searchForm .input{max-width:100%}.listTable{font-size:13px}}
