/* ==========================================================================
   BIRDCAGE ADMIN — styles
   ========================================================================== */

.admin-body{background:var(--black);min-height:100vh;}

/* ---------------- Login ---------------- */
#admin-login{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at center, rgba(201,169,97,.06), transparent 60%), var(--black);
}
.login-box{
  width:min(90vw,380px);text-align:center;border:1px solid var(--line);
  padding:50px 36px;background:var(--charcoal-2);
}
.login-logo{width:110px;margin:0 auto 20px;}
.login-box h1{font-family:var(--font-display);color:var(--gold-light);font-size:1.3rem;margin-bottom:10px;letter-spacing:.05em;}
.login-box p{color:var(--text-dim);font-size:.86rem;margin-bottom:22px;}
#admin-pass{
  width:100%;padding:13px 16px;background:var(--charcoal);border:1px solid var(--line);color:var(--ivory);
  margin-bottom:16px;font-size:.94rem;
}
#admin-pass:focus{outline:none;border-color:var(--gold-dim);}
#admin-login-btn{width:100%;padding:13px;}
#admin-login-error{color:var(--rose);font-size:.8rem;margin-top:12px;display:none;}

/* ---------------- Layout ---------------- */
.admin-header{
  display:flex;align-items:center;gap:20px;padding:16px 28px;
  background:var(--charcoal-2);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
}
.admin-logo img{height:32px;}
.admin-header h1{
  font-family:var(--font-display);font-size:1rem;letter-spacing:.08em;color:var(--gold-light);flex:1;
}
.admin-header-actions{display:flex;gap:10px;}

.admin-layout{display:flex;min-height:calc(100vh - 65px);}
.admin-sidebar{
  width:230px;flex-shrink:0;background:var(--charcoal);border-right:1px solid var(--line);
  padding:20px 12px;display:flex;flex-direction:column;gap:6px;
}
.admin-tab{
  text-align:left;padding:13px 16px;border-radius:4px;color:var(--text-muted);
  font-size:.86rem;display:flex;align-items:center;gap:10px;transition:.25s;
}
.admin-tab i{width:18px;color:var(--gold-dim);}
.admin-tab:hover{background:rgba(201,169,97,.06);color:var(--ivory);}
.admin-tab.active{background:rgba(201,169,97,.12);color:var(--gold-light);border-left:2px solid var(--gold);}

.admin-main{flex:1;padding:34px 40px;overflow-y:auto;}
.admin-panel{display:none;}
.admin-panel.active{display:block;}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:14px;}
.panel-head h2{font-family:var(--font-display);color:var(--ivory);font-size:1.4rem;letter-spacing:.03em;}
.panel-desc{color:var(--text-dim);font-size:.88rem;margin-bottom:26px;max-width:720px;}

/* ---------------- Form Card ---------------- */
.form-card{
  border:1px solid var(--gold-dim);background:var(--charcoal-2);padding:26px;margin-bottom:30px;
}
.form-card h3{font-family:var(--font-display);color:var(--gold-light);font-size:1rem;margin-bottom:18px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.form-grid.full{grid-template-columns:1fr;}
.form-field label{display:block;font-size:.78rem;color:var(--text-dim);margin-bottom:6px;letter-spacing:.03em;}
.form-field input[type=text],.form-field input[type=number],.form-field input[type=datetime-local],.form-field input[type=date],
.form-field input[type=file],
.form-field select,.form-field textarea{
  width:100%;padding:11px 14px;background:var(--charcoal);border:1px solid var(--line);color:var(--ivory);font-size:.88rem;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--gold-dim);}

/* 파일 선택 — 다른 입력 필드와 같은 크기·색상으로 통일.
   내부 "파일 선택" 버튼(브라우저 기본 회색)도 사이트 골드 톤으로 맞춥니다. */
.form-field input[type=file]{
  padding:5px 10px;color:var(--text-muted);cursor:pointer;line-height:1.5;
}
.form-field input[type=file]::file-selector-button{
  margin-right:12px;padding:5px 16px;
  background:transparent;border:1px solid var(--gold-dim);color:var(--gold-light);
  font-family:inherit;font-size:.76rem;letter-spacing:.04em;cursor:pointer;
  transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);
}
.form-field input[type=file]::file-selector-button:hover{
  background:var(--gold);border-color:var(--gold);color:var(--black);
}
/* 구형 웹킷 대응 */
.form-field input[type=file]::-webkit-file-upload-button{
  margin-right:12px;padding:5px 16px;
  background:transparent;border:1px solid var(--gold-dim);color:var(--gold-light);
  font-family:inherit;font-size:.76rem;letter-spacing:.04em;cursor:pointer;
}
.form-field textarea{min-height:80px;resize:vertical;}
.form-field .checkbox-row{display:flex;align-items:center;gap:8px;}
.form-field .checkbox-row input{width:auto;}

/* 노출 활성화 토글 스위치 — 잘 보이도록 크게 */
.form-field label.switch{
  display:inline-flex;align-items:center;gap:14px;margin:0;cursor:pointer;user-select:none;
  padding:8px 4px;
}
.switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none;}
.switch .switch-track{
  position:relative;width:60px;height:32px;border-radius:999px;flex-shrink:0;
  background:var(--charcoal);border:1px solid var(--line);
  transition:background .25s var(--ease),border-color .25s var(--ease);
}
.switch .switch-thumb{
  position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;
  background:var(--text-dim);
  transition:transform .25s var(--ease),background .25s var(--ease);
}
.switch input:checked + .switch-track{background:var(--gold);border-color:var(--gold);}
.switch input:checked + .switch-track .switch-thumb{transform:translateX(28px);background:var(--black);}
.switch .switch-text{font-size:.9rem;font-weight:500;color:var(--text-muted);transition:color .25s var(--ease);}
.switch input:checked ~ .switch-text{color:var(--gold-light);}
.switch input:focus-visible + .switch-track{box-shadow:0 0 0 3px rgba(201,169,97,.35);}

/* 게시 시작/종료일 — 더 크게, 필드 어디를 클릭해도 달력이 뜨도록 */
.date-field-lg label{font-size:.9rem;color:var(--gold-light);margin-bottom:8px;}
.date-field-lg input[type=date]{
  padding:16px 14px;font-size:.83rem;letter-spacing:.02em;cursor:pointer;
  color-scheme:dark;
}
.upload-preview{max-width:180px;margin-top:10px;border:1px solid var(--line);display:none;}
.form-actions{display:flex;gap:12px;margin-top:8px;}
.form-actions .btn{padding:11px 24px;font-size:.76rem;}
.btn.ghost{border:1px solid var(--line);color:var(--text-dim);}
.btn.ghost:hover{border-color:var(--text-muted);color:var(--ivory);}
.btn.ghost::before{display:none;}

/* ---------------- Bulk select toolbar ---------------- */
.bulk-bar{
  display:none;align-items:center;gap:16px;margin-bottom:16px;padding:10px 16px;
  border:1px solid var(--line);background:var(--charcoal-2);border-radius:6px;
}
.bulk-bar.show{display:flex;}
.bulk-all{display:flex;align-items:center;gap:9px;font-size:.82rem;color:var(--text-muted);cursor:pointer;user-select:none;}
.bulk-all input{width:17px;height:17px;cursor:pointer;accent-color:var(--gold);}
.bulk-del-btn{
  margin-left:auto;padding:9px 20px;font-size:.74rem;letter-spacing:.02em;border-radius:4px;
  border:1px solid var(--wine-light);color:var(--rose);background:transparent;
}
.bulk-del-btn:hover:not(:disabled){background:var(--wine);color:var(--ivory);}
.bulk-del-btn:disabled{opacity:.4;cursor:not-allowed;}
.bulk-del-btn.confirming{background:var(--wine);color:var(--ivory);border-color:var(--wine);animation:bulkPulse .9s ease-in-out infinite;}
@keyframes bulkPulse{0%,100%{opacity:1;}50%{opacity:.72;}}

/* ---------------- Card Grid ---------------- */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;}
.admin-card{border:1px solid var(--line);background:var(--charcoal-2);overflow:hidden;position:relative;}
.admin-card .card-select{
  position:absolute;top:10px;left:10px;z-index:3;width:22px;height:22px;cursor:pointer;
  accent-color:var(--gold);
  box-shadow:0 0 0 3px rgba(4,4,6,.5);border-radius:3px;
}
.admin-card .thumb{width:100%;height:150px;object-fit:cover;background:#000;}
.admin-card .thumb-placeholder{
  width:100%;height:150px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);
  background:var(--charcoal);font-size:1.6rem;
}
.admin-card .body{padding:14px 16px;}
.admin-card h4{font-size:.92rem;color:var(--ivory);margin-bottom:6px;}
.admin-card p{font-size:.78rem;color:var(--text-dim);margin-bottom:10px;line-height:1.5;}
.admin-card .meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.tag{font-size:.68rem;padding:3px 9px;border:1px solid var(--line);border-radius:10px;color:var(--text-muted);}
.tag.on{border-color:var(--gold-dim);color:var(--gold-light);}
.tag.off{border-color:var(--wine-light);color:var(--rose);}
.card-actions{display:flex;gap:8px;}
.card-actions button{
  flex:1;padding:8px 0;font-size:.72rem;border:1px solid var(--line);color:var(--text-muted);
}
.card-actions button:hover{border-color:var(--gold-dim);color:var(--gold-light);}
.card-actions button.danger:hover{border-color:var(--wine-light);color:var(--rose);}
.empty-state{
  grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--text-dim);border:1px dashed var(--line);
}

/* ---------------- Inquiry table ---------------- */
.admin-table-wrap{overflow-x:auto;border:1px solid var(--line);}
table.admin-table{width:100%;border-collapse:collapse;min-width:760px;}
table.admin-table th,table.admin-table td{
  padding:12px 14px;border-bottom:1px solid var(--line);font-size:.84rem;text-align:left;color:var(--text-muted);
}
table.admin-table th{background:var(--charcoal-2);color:var(--gold-light);font-family:var(--font-display);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;}
table.admin-table select{background:var(--charcoal);color:var(--ivory);border:1px solid var(--line);padding:5px 8px;font-size:.78rem;}

@media (max-width:860px){
  .admin-layout{flex-direction:column;}
  .admin-sidebar{width:100%;flex-direction:row;overflow-x:auto;}
  .form-grid{grid-template-columns:1fr;}
  .admin-main{padding:24px 18px;}
}
