/* ============================================================
   Next Vision Blog - Admin Panel Style
   ============================================================ */
:root {
  --gold: #c9a84c;
  --gold-light: #f0d080;
  --bg: #07070f;
  --bg2: #0d0d1a;
  --bg3: #13131f;
  --bg4: #1a1a2e;
  --text: #e0e0f0;
  --text-muted: #8888aa;
  --border: rgba(201,168,76,0.18);
  --danger: #e74c3c;
  --success: #2ecc71;
  --radius: 10px;
  --transition: 0.25s ease;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--text); font-family: 'Noto Sans JP', sans-serif; line-height: 1.7; overflow-x: hidden; }

/* ログイン */
.login-wrap {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(201,168,76,0.07) 0%, transparent 70%), var(--bg);
  padding: 20px;
}
.login-card {
  background: var(--bg3); border: 1px solid var(--border); border-radius: 16px;
  padding: 48px; width: 100%; max-width: 420px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.6);
  animation: loginFadeIn 0.5s ease;
}
@keyframes loginFadeIn { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.login-logo { text-align: center; margin-bottom: 32px; }
.login-logo .nv { font-size: 2.5rem; font-weight: 900; letter-spacing: 0.15em; background: linear-gradient(135deg,var(--gold),var(--gold-light)); -webkit-background-clip:text;background-clip:text;color:transparent; }
.login-logo p { color: var(--text-muted); font-size: 0.82rem; margin-top: 4px; }
.form-group { margin-bottom: 20px; }
.form-group label { display:block; font-size:0.82rem; color:var(--text-muted); margin-bottom:8px; letter-spacing:0.05em; }
.form-group input {
  width: 100%; padding: 13px 16px; background: var(--bg4); border: 1px solid var(--border);
  border-radius: var(--radius); color: var(--text); font-size: 0.95rem;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.form-group input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,168,76,0.12); }
.btn-primary {
  width: 100%; padding: 14px; background: linear-gradient(135deg,#a07830,var(--gold-light));
  color: #07070f; font-size: 1rem; font-weight: 700; border: none; border-radius: var(--radius);
  cursor: pointer; transition: transform var(--transition), box-shadow var(--transition);
  letter-spacing: 0.05em;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(201,168,76,0.25); }
.alert { padding: 12px 16px; border-radius: var(--radius); font-size: 0.88rem; margin-bottom: 16px; }
.alert-danger { background: rgba(231,76,60,0.15); border: 1px solid rgba(231,76,60,0.3); color: #e74c3c; }
.alert-success { background: rgba(46,204,113,0.12); border: 1px solid rgba(46,204,113,0.25); color: #2ecc71; }

/* 管理レイアウト */
.admin-wrap { display: flex; min-height: 100vh; }

/* サイドバー */
.sidebar {
  width: 260px; flex-shrink: 0;
  background: var(--bg2); border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
  position: fixed; top: 0; bottom: 0; left: 0; z-index: 50;
  overflow-y: auto; transition: transform var(--transition);
}
.sidebar-header {
  padding: 24px 20px; border-bottom: 1px solid var(--border);
}
.sidebar-logo { font-size: 1.1rem; font-weight: 800; letter-spacing: 0.15em; background: linear-gradient(90deg,var(--gold),var(--gold-light)); -webkit-background-clip:text;background-clip:text;color:transparent; }
.sidebar-sub { font-size: 0.72rem; color: var(--text-muted); margin-top: 2px; }

.sidebar-nav { padding: 16px 12px; flex: 1; }
.nav-section { font-size: 0.7rem; letter-spacing: 0.15em; color: var(--text-muted); padding: 8px 12px 6px; text-transform: uppercase; }
.sidebar-link {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 14px; border-radius: 8px; text-decoration: none;
  color: var(--text-muted); font-size: 0.88rem; transition: all var(--transition);
  margin-bottom: 2px; cursor: pointer; background: none; border: none; width: 100%; text-align: left;
}
.sidebar-link:hover { background: rgba(201,168,76,0.07); color: var(--text); }
.sidebar-link.active { background: rgba(201,168,76,0.12); color: var(--gold); }
.sidebar-link .icon { width: 20px; text-align: center; font-size: 1rem; }
.sidebar-link .badge { margin-left: auto; background: var(--gold); color: #07070f; border-radius: 50px; padding: 1px 8px; font-size: 0.7rem; font-weight: 700; }

.sidebar-footer { padding: 16px 12px; border-top: 1px solid var(--border); }

/* メインコンテンツ */
.admin-main { flex: 1; margin-left: 260px; min-height: 100vh; }
.admin-topbar {
  position: sticky; top: 0; z-index: 40;
  background: rgba(7,7,15,0.9); backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
  padding: 0 32px; height: 64px;
  display: flex; align-items: center; justify-content: space-between;
}
.topbar-title { font-size: 1.1rem; font-weight: 700; }
.topbar-actions { display: flex; gap: 10px; align-items: center; }

.admin-content { padding: 32px; max-width: 1100px; }

/* カード */
.card {
  background: var(--bg3); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 24px; margin-bottom: 24px;
}
.card-title { font-size: 1rem; font-weight: 700; margin-bottom: 20px; color: var(--text); display:flex;align-items:center;gap:10px; }
.card-title::before { content:''; width:3px; height:16px; background:var(--gold); border-radius:2px; }

/* 統計カード */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 16px; margin-bottom: 24px; }
.stat-card {
  background: var(--bg3); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 20px 24px;
}
.stat-label { font-size: 0.78rem; color: var(--text-muted); letter-spacing: 0.08em; margin-bottom: 8px; }
.stat-value { font-size: 2.2rem; font-weight: 900; color: var(--gold); }
.stat-sub { font-size: 0.78rem; color: var(--text-muted); margin-top: 4px; }

/* テーブル */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
thead th { background: var(--bg4); color: var(--text-muted); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--border); }
tbody tr { border-bottom: 1px solid rgba(201,168,76,0.07); transition: background var(--transition); }
tbody tr:hover { background: rgba(201,168,76,0.04); }
tbody td { padding: 14px 16px; vertical-align: middle; }
.td-title { font-weight: 600; color: var(--text); max-width: 300px; }
.td-title a { color: inherit; text-decoration: none; }
.td-title a:hover { color: var(--gold); }

/* バッジ */
.badge { display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:50px;font-size:0.72rem;font-weight:700;letter-spacing:0.05em; }
.badge-published { background:rgba(46,204,113,0.15);color:#2ecc71;border:1px solid rgba(46,204,113,0.2); }
.badge-draft { background:rgba(136,136,170,0.15);color:var(--text-muted);border:1px solid rgba(136,136,170,0.15); }

/* ボタン */
.btn { display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:7px;font-size:0.85rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all var(--transition);text-decoration:none; }
.btn-sm { padding:6px 12px;font-size:0.8rem; }
.btn-gold { background:linear-gradient(135deg,#a07830,var(--gold));color:#07070f;border:none; }
.btn-gold:hover { transform:translateY(-1px);box-shadow:0 4px 16px rgba(201,168,76,0.3); }
.btn-outline { background:transparent;border-color:var(--border);color:var(--text-muted); }
.btn-outline:hover { border-color:var(--gold);color:var(--gold); }
.btn-danger { background:rgba(231,76,60,0.12);border-color:rgba(231,76,60,0.25);color:var(--danger); }
.btn-danger:hover { background:rgba(231,76,60,0.2); }

/* エディタ */
.editor-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media(max-width:900px){ .editor-wrap{grid-template-columns:1fr;} }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
@media(max-width:600px){ .form-row{grid-template-columns:1fr;} }
.form-field { margin-bottom: 18px; }
.form-field label { display:block;font-size:0.8rem;color:var(--text-muted);margin-bottom:7px;letter-spacing:0.04em; }
.form-field input, .form-field select, .form-field textarea {
  width:100%; padding:11px 14px; background:var(--bg4); border:1px solid var(--border);
  border-radius:8px; color:var(--text); font-size:0.92rem; font-family:inherit;
  transition:border-color var(--transition),box-shadow var(--transition);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
  outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,168,76,0.1);
}
.form-field select option { background:var(--bg3); }

/* ブロックエディタ */
.block-list { min-height: 100px; }
.block-item {
  background: var(--bg4); border: 1px solid var(--border); border-radius: 8px;
  padding: 14px; margin-bottom: 10px; position: relative;
  transition: border-color var(--transition);
}
.block-item:hover { border-color: rgba(201,168,76,0.35); }
.block-header { display:flex;align-items:center;gap:8px;margin-bottom:10px; }
.block-type-badge { background:rgba(201,168,76,0.12);color:var(--gold);font-size:0.7rem;font-weight:700;padding:3px 10px;border-radius:50px;letter-spacing:0.08em; }
.block-actions { margin-left:auto;display:flex;gap:4px; }
.block-btn { background:none;border:none;color:var(--text-muted);cursor:pointer;padding:5px 8px;border-radius:5px;font-size:0.9rem;transition:all var(--transition); }
.block-btn:hover { background:rgba(201,168,76,0.1);color:var(--gold); }
.block-btn.del:hover { background:rgba(231,76,60,0.1);color:var(--danger); }
.block-item textarea { width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:10px;color:var(--text);font-size:0.88rem;resize:vertical;min-height:80px;font-family:inherit; }
.block-item textarea:focus { outline:none;border-color:var(--gold); }
.block-item select { background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:7px 10px;color:var(--text);font-size:0.82rem;margin-bottom:8px; }
.block-item input[type=text],  .block-item input[type=url] { width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:9px;color:var(--text);font-size:0.85rem;margin-bottom:8px; }
.block-item input:focus { outline:none;border-color:var(--gold); }
.block-add-bar { display:flex;flex-wrap:wrap;gap:8px;margin-top:12px; }
.add-block-btn {
  padding:7px 16px; background:var(--bg4); border:1px dashed var(--border); border-radius:7px;
  color:var(--text-muted); font-size:0.8rem; cursor:pointer; transition:all var(--transition);
}
.add-block-btn:hover { border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.06); }
.add-block-html { border-color: #4fc3f7; color: #4fc3f7; }
.add-block-html:hover { border-color: #4fc3f7; color: #4fc3f7; background: rgba(79,195,247,0.08); }
.add-block-code { border-color: #a5d6a7; color: #a5d6a7; }
.add-block-code:hover { border-color: #a5d6a7; color: #a5d6a7; background: rgba(165,214,167,0.08); }

/* 画像プレビュー */
.thumb-preview { margin-top: 10px; }
.thumb-preview img { max-width: 200px; border-radius: 8px; border: 1px solid var(--border); }

/* カテゴリ管理 */
.cat-list { display:flex;flex-wrap:wrap;gap:10px; }
.cat-tag { display:inline-flex;align-items:center;gap:8px;padding:7px 14px;background:var(--bg4);border:1px solid var(--border);border-radius:50px;font-size:0.85rem; }
.cat-del { background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;transition:color var(--transition); }
.cat-del:hover{color:var(--danger);}
.cat-add { display:flex;gap:10px;margin-top:16px; }
.cat-add input { flex:1;padding:10px 14px;background:var(--bg4);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:0.9rem; }
.cat-add input:focus{outline:none;border-color:var(--gold);}

/* モーダル */
.modal-overlay { position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.75);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px; }
.modal-box { background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:32px;max-width:440px;width:100%;animation:modalIn 0.3s ease; }
@keyframes modalIn { from{opacity:0;transform:scale(0.95)} to{opacity:1;transform:scale(1)} }
.modal-title { font-size:1.1rem;font-weight:700;margin-bottom:12px; }
.modal-body { color:var(--text-muted);font-size:0.9rem;margin-bottom:24px; }
.modal-actions { display:flex;gap:10px;justify-content:flex-end; }

/* レスポンシブ */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%); }
  .sidebar.open{transform:translateX(0); }
  .admin-main{margin-left:0;}
  .admin-content{padding:20px;}
  .topbar-title{font-size:0.95rem;}
}
