:root { --bg:#f6f7fb; --card:#ffffff; --text:#111827; --muted:#6b7280; --accent:#2563eb; --danger:#ef4444; --border:#e5e7eb; --pill:#f3f4f6; }
html.theme-dark { --bg:#0b0d10; --card:#141820; --text:#e5e7eb; --muted:#9ca3af; --accent:#4f8cff; --danger:#ef4444; --border:#2a3242; --pill:#0d1117; }
*{ box-sizing: border-box; } html,body{ margin:0; padding:0; background:var(--bg); color:var(--text); font-family: ui-sans-serif,system-ui; }
a{ color:var(--accent); text-decoration:none; }

.admin-header{ display:flex; align-items:center; justify-content:space-between; padding:16px; max-width:1200px; margin:0 auto; }
.actions a{ margin-left:10px; }

.admin-grid{ max-width:1200px; margin:0 auto; padding:16px; display:grid; grid-template-columns: repeat(auto-fill, minmax(340px,1fr)); gap:16px; }
.card{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:16px; box-shadow: 0 6px 24px rgba(0,0,0,.06); overflow:hidden; }
.card-wide{ grid-column: 1 / -1; }

.grid-form{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; align-items:end; width:100%; }
.grid-form.course-form{ grid-template-columns: 1fr 1fr auto auto; }
.grid-form label{ display:flex; flex-direction:column; gap:6px; font-size:14px; min-width:0; }

.grid-form input, .grid-form select, .grid-form button{
  padding:8px 10px; border-radius:10px; border:1px solid var(--border);
  background:#fff; color:var(--text); width:100%;
}
html.theme-dark .grid-form input, html.theme-dark .grid-form select{ background:#0d1117; color:#e5e7eb; border-color:#2a3242; }
.grid-form button{ background: var(--accent); border:none; width:auto; color:#fff; font-weight:600; }
.grid-form .danger{ background: var(--danger); color:#fff; }
.grid-form input[type="color"]{ width:48px; height:36px; padding:0; border-radius:10px; }

.list{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.list li{ background:var(--pill); border:1px solid var(--border); border-radius:10px; padding:8px 10px; }
.list li .view{ display:flex; align-items:center; gap:10px; }
.list .dot{ display:inline-block; width:10px; height:10px; border-radius:50%; }
.list .sp{ flex:1; }
.list .del{ background: var(--danger); border:none; color:#fff; padding:4px 10px; border-radius:8px; cursor:pointer; }
.list .btn-edit{ background: var(--accent); border:none; color:#fff; padding:4px 10px; border-radius:8px; cursor:pointer; }

.list li .edit{ display:none; gap:8px; align-items:center; flex-wrap:wrap; margin-top:6px; }
.list li.editing .view{ display:none; }
.list li.editing .edit{ display:flex; }
.inline-input{ padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--text); min-width:180px; }
.inline-color{ width:48px; height:36px; padding:0; border-radius:10px; border:1px solid var(--border); }
.btn-save{ background: var(--accent); border:none; color:#fff; padding:6px 10px; border-radius:8px; }
.btn-cancel{ background: var(--pill); border:1px solid var(--border); padding:6px 10px; border-radius:8px; }

.session-grid{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:12px; }
@media (min-width: 1100px){ .session-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.session-card{ background:var(--pill); border:1px solid var(--border); border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:8px; }
.s-title{ font-weight:700; }
.s-sub{ font-size:13px; color:var(--text); opacity:.9; }
.s-actions{ margin-top:auto; display:flex; gap:8px; justify-content:flex-end; }
.s-actions .danger{ background: var(--danger); border:none; padding:6px 10px; border-radius:8px; color:#fff; }
.s-actions .btn-edit{ background: var(--accent); border:none; color:#fff; padding:6px 10px; border-radius:8px; }

.session-card .edit{ display:none; }
.session-card.editing .view{ display:none; }
.session-card.editing .edit{ display:grid; }

.form-inline-2{ grid-template-columns: 1fr 1fr auto; }
@media (max-width: 640px){ .grid-form{ grid-template-columns: 1fr; } .form-inline-2{ grid-template-columns: 1fr; } .session-grid{ grid-template-columns: 1fr; } }

.icon-btn{ border:1px solid var(--border); background:var(--card); color:var(--text); border-radius:10px; padding:6px 10px; cursor:pointer; }

/* ======= 芯片（含编辑态） ======= */
.chip-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.chip{ display:flex; align-items:center; gap:8px; background:var(--pill); border:1px solid var(--border); border-radius:999px; padding:6px 10px; }
.chip .name{ max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chip-btn{ background: var(--accent); color:#fff; border:none; padding:4px 10px; border-radius:8px; cursor:pointer; }
.chip-del{ background: var(--danger); color:#fff; border:none; padding:4px 10px; border-radius:8px; cursor:pointer; }
.chip-del-form{ display:flex; align-items:center; }

.chip-edit-form{ display:none; align-items:center; gap:8px; }
.chip.editing .chip-edit-form{ display:flex; }
.chip.editing .name,
.chip.editing .chip-del-form,
.chip.editing .chip-btn{ display:none; }

.chip-input { width:170px; padding:6px 8px; border:1px solid var(--border); border-radius:8px; background:var(--card); color:var(--text); }
.chip-save   { background: var(--accent); color:#fff; border:none; padding:6px 10px; border-radius:8px; }
.chip-cancel { background: var(--pill);   border:1px solid var(--border); padding:6px 10px; border-radius:8px; }

/* 登录卡片 */
.auth-card a{ color:var(--accent); }
