/* WISNET 관리자 패널 스타일 */
:root{--navy:#0b1220;--blue:#0ea5e9;--cyan:#22d3ee;--line:#e2e8f0;--soft:#f1f5f9;
  --ink:#1e293b;--muted:#64748b;--grad:linear-gradient(120deg,#0ea5e9,#22d3ee);--radius:14px}
*{margin:0;padding:0;box-sizing:border-box}
body.admin{font-family:"Noto Sans KR",system-ui,sans-serif;background:#f6f8fb;color:var(--ink);line-height:1.6}
a{text-decoration:none;color:inherit}

/* 상단바 */
.admin-top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20}
.admin-top-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:18px;
  padding:0 20px;height:60px;flex-wrap:wrap}
.admin-logo{font-weight:800;letter-spacing:1px}.admin-logo span{color:var(--cyan);font-weight:500;font-size:.85rem}
.admin-nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.admin-nav a{padding:8px 14px;border-radius:8px;font-size:.9rem;color:#cbd5e1}
.admin-nav a:hover{background:rgba(255,255,255,.1);color:#fff}
.admin-nav a.on{background:var(--grad);color:#04222e;font-weight:700}
.admin-right{display:flex;gap:12px;align-items:center}
.admin-right .ext{font-size:.85rem;color:var(--cyan)}
.admin-right .logout{font-size:.85rem;color:#fca5a5}

.admin-main{padding:30px 20px 70px}
.admin-container{max-width:1180px;margin:0 auto}
.admin-container.narrow{max-width:760px}
.admin-h1{font-size:1.55rem;margin-bottom:6px}
.admin-lead{color:var(--muted);margin-bottom:24px}
.admin-head-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}

/* 버튼 */
.btn{display:inline-block;padding:11px 22px;border-radius:9px;font-weight:700;font-size:.92rem;border:none;cursor:pointer;transition:.18s}
.btn-primary{background:var(--grad);color:#04222e}
.btn-primary:hover{filter:brightness(1.05)}
.btn-outline{background:#fff;border:1.5px solid var(--blue);color:var(--blue)}
.btn-sm{padding:6px 13px;font-size:.82rem;border-radius:7px;background:var(--soft);border:1px solid var(--line);color:var(--ink)}
.btn-danger{background:#fef2f2;border-color:#fecaca;color:#dc2626}
.btn-danger:hover{background:#dc2626;color:#fff}
.btn.full{width:100%}

/* 로그인 */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(900px 500px at 50% -10%,#13314f,var(--navy));padding:20px}
.login-card{background:#fff;border-radius:18px;padding:40px 34px;width:100%;max-width:380px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.login-card h1{font-size:1.4rem;text-align:center}
.login-sub{text-align:center;color:var(--muted);font-size:.88rem;margin:6px 0 22px}
.login-card label{display:block;font-size:.86rem;font-weight:600;margin-bottom:14px}
.login-card input{width:100%;margin-top:6px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit}
.login-card input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.15)}
.back-home{display:block;text-align:center;margin-top:16px;color:var(--muted);font-size:.85rem}

/* 통계 카드 */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;
  display:flex;flex-direction:column;gap:4px;transition:.2s}
.stat-card:hover{border-color:var(--cyan);transform:translateY(-3px)}
.stat-num{font-size:2.1rem;font-weight:800;color:var(--blue)}
.stat-label{color:var(--muted);font-weight:600}
.badge-new{background:#dc2626;color:#fff;font-size:.7rem;padding:2px 7px;border-radius:10px;font-style:normal;margin-left:6px}

/* 빠른 메뉴 */
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px}
.quick-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;transition:.2s}
.quick-card:hover{border-color:var(--blue);box-shadow:0 8px 22px rgba(15,27,46,.08)}
.quick-card h3{font-size:1.08rem;margin-bottom:6px}
.quick-card p{color:var(--muted);font-size:.9rem}

/* 알림 */
.alert{padding:14px 16px;border-radius:10px;margin-bottom:20px;font-size:.9rem}
.alert.ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.alert.info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
.alert.err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert code{background:rgba(0,0,0,.06);padding:1px 6px;border-radius:4px}

/* 설정 폼 */
.settings-form .set-group{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;margin-bottom:18px}
.set-group h2{font-size:1.12rem;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--soft);color:var(--blue)}
.set-field{display:block;margin-bottom:16px}
.set-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px;color:var(--ink)}
.set-field input,.set-field textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:9px;font:inherit;background:#fff}
.set-field textarea{resize:vertical;line-height:1.6}
.set-field input:focus,.set-field textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.13)}
.sticky-save{position:sticky;bottom:0;background:rgba(246,248,251,.92);backdrop-filter:blur(4px);
  padding:16px 0;text-align:right;border-top:1px solid var(--line)}

/* 일반 폼 */
.admin-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.admin-form label{display:block;font-size:.86rem;font-weight:600;margin-bottom:16px}
.admin-form input[type=text],.admin-form input[type=password],.admin-form input[type=email],
.admin-form textarea,.admin-form select{width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--line);
  border-radius:9px;font:inherit;font-weight:400}
.admin-form textarea{resize:vertical;line-height:1.6}
.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.13)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-row label.checkbox{display:flex;align-items:center;gap:8px;margin-top:28px}
.form-row label.checkbox input{width:auto;margin:0}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.upload-form{margin-bottom:26px}

/* 테이블 */
.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.admin-table th,.admin-table td{padding:13px 14px;border-bottom:1px solid var(--line);font-size:.9rem;text-align:left}
.admin-table thead th{background:var(--soft);font-weight:700}
.admin-table .actions{display:flex;gap:8px}
.admin-table .actions form{margin:0}
.admin-table .empty{text-align:center;color:var(--muted);padding:30px}
/* 자료실 관리 표: 짧은 칸은 줄바꿈 금지, 제목/파일만 줄바꿈 허용 */
.res-table{table-layout:auto}
.res-table th,.res-table td{white-space:nowrap;vertical-align:middle}
.res-table td:nth-child(1){font-weight:600}
.res-table th:nth-child(3),.res-table td:nth-child(3),
.res-table th:nth-child(4),.res-table td:nth-child(4){white-space:normal}
.res-table td:nth-child(3){min-width:150px}
.res-table td:nth-child(4){min-width:200px;max-width:340px;word-break:break-all}

/* 문의 카드 */
.msg-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:14px}
.msg-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.msg-head strong{font-size:1.05rem}
.msg-date{color:var(--muted);font-size:.82rem;white-space:nowrap}
.msg-meta{color:var(--blue);font-size:.88rem;margin:6px 0 12px}
.msg-body{background:var(--soft);border-radius:9px;padding:14px;white-space:pre-wrap;font-size:.92rem;margin-bottom:12px}
.empty-box{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--muted)}

@media (max-width:760px){
  .admin-top-inner{height:auto;padding:10px 16px}
  .admin-nav{order:3;width:100%}
  .stat-grid,.quick-grid,.form-row{grid-template-columns:1fr}
  .admin-table{display:block;overflow-x:auto;white-space:nowrap}
}

/* 문의 메일 상태 알림 — 설명 + 확인 버튼 */
.mail-status{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.mail-status em{display:block;font-style:normal;opacity:.75;margin-top:3px;font-size:.86rem}
.mail-status form{display:flex;gap:8px;flex-shrink:0}
.btn-mini{font-size:.82rem;font-weight:700;padding:7px 13px;border-radius:8px;cursor:pointer;
  background:#fff;border:1px solid currentColor;color:inherit}
.btn-mini:hover{background:rgba(0,0,0,.05)}
