/* 校园资料共享 —— 项目自定义补充样式(建立在设计系统之上) */

/* ---- 布局辅助 ---- */
.grid-2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:var(--sp-6); align-items:start; }
.chip-row { display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.kv-row { display:flex; gap:var(--sp-3); padding:var(--sp-2) 0; border-bottom:1px dashed var(--color-border); font-size:var(--fs-base); }
.kv-label { color:var(--color-text-muted); width:90px; flex-shrink:0; }
.kv-value { color:var(--color-text); font-weight:500; }
.btn--block { width:100%; }
.text-muted { color:var(--color-text-muted); }
.mt-3 { margin-top:var(--sp-4); }

/* 统计卡 */
.stat-block { display:flex; gap:var(--sp-8); flex-wrap:wrap; }
.stat-block__item { text-align:center; }
.stat-block__value { font-size:var(--fs-4xl); font-weight:800; }
.stat-block__label { font-size:var(--fs-xs); color:var(--color-text-muted); }

/* 卡片可点击 */
.card--resource { display:block; color:inherit; }
.card--resource:hover { color:inherit; }

/* ---- 学校 / 校区 scope 切换器(两级)---- */
.scope-switch { display:flex; gap:var(--sp-1); align-items:center; }
.scope-switch__item { position:relative; }
.scope-btn {
  display:inline-flex; align-items:center; gap:6px; padding:6px 12px;
  border:1px solid var(--color-border); background:var(--color-bg-elevated);
  border-radius:var(--radius-full); font-size:var(--fs-sm); color:var(--color-text-secondary);
  cursor:pointer; transition:all var(--duration-fast) var(--ease-out); white-space:nowrap;
}
.scope-btn:hover { border-color:var(--color-primary); color:var(--color-primary); background:var(--color-bg-muted); }
.scope-dropdown {
  position:absolute; top:100%; right:0; min-width:210px;
  background:var(--color-bg-elevated); border:1px solid var(--color-border);
  border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:var(--sp-1);
  z-index:var(--z-dropdown); display:none; max-height:70vh; overflow:auto;
  margin-top:4px;
}
/* 点击开关(非 hover):JS 切 .open。避免 hover 下鼠标下滑/滚动导致菜单消失。 */
.scope-switch__item.open .scope-dropdown { display:block; }
.scope-opt {
  display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:var(--radius-sm);
  font-size:var(--fs-sm); color:var(--color-text); cursor:pointer; white-space:nowrap;
}
.scope-opt:hover { background:var(--color-bg-muted); }
.scope-opt--active { color:var(--color-primary); font-weight:600; background:var(--color-info-light); }
.scope-opt--divider { border-top:1px solid var(--color-border); margin:4px 0; height:0; padding:0; }
.scope-opt__head { font-size:var(--fs-xs); color:var(--color-text-muted); padding:8px 12px 2px; font-weight:600; }

/* 学校色点 / 标签 */
.school-dot { width:9px; height:9px; border-radius:50%; display:inline-block; flex-shrink:0; }
.school-tag { display:inline-flex; align-items:center; gap:5px; font-size:var(--fs-xs); padding:2px 9px; border-radius:var(--radius-full); background:var(--color-bg-muted); color:var(--color-text-secondary); }

/* ---- 互动按钮(点赞 / 收藏 / 举报)---- */
.action-row { display:flex; gap:var(--sp-3); align-items:center; flex-wrap:wrap; }
.action-btn {
  display:inline-flex; align-items:center; gap:6px; padding:9px 18px;
  border:1px solid var(--color-border); background:var(--color-bg-elevated);
  border-radius:var(--radius-full); font-size:var(--fs-base); color:var(--color-text-secondary);
  cursor:pointer; transition:all var(--duration-fast) var(--ease-out);
}
.action-btn:hover { border-color:var(--color-primary); color:var(--color-primary); transform:translateY(-1px); }
.action-btn--active { color:#fff; background:var(--gradient-brand); border-color:transparent; }
.action-btn--ghost { background:transparent; border-color:transparent; color:var(--color-text-muted); padding:6px 10px; }
.action-btn--ghost:hover { color:var(--color-danger); background:var(--color-danger-light); }

/* ---- 星级 ---- */
.stars { display:inline-flex; gap:2px; font-size:var(--fs-md); line-height:1; }
.stars__star { color:var(--color-border); }
.stars__star--on { color:var(--color-warning); }
.stars__input { display:inline-flex; gap:4px; flex-direction:row-reverse; justify-content:flex-end; }
.stars__input input { display:none; }
.stars__input label { cursor:pointer; font-size:28px; color:var(--color-border); transition:color var(--duration-fast); line-height:1; }
.stars__input label:hover,
.stars__input label:hover ~ label,
.stars__input input:checked ~ label { color:var(--color-warning); }

/* ---- 网盘徽章 / 链接卡 ---- */
.netdisk-badge { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:var(--radius-full); font-size:var(--fs-sm); font-weight:600; }
.netdisk-badge--baidu { background:#fee2e2; color:#dc2626; }
.netdisk-badge--quark { background:#dbeafe; color:#2563eb; }
.netdisk-badge--xunlei { background:#e0e7ff; color:#4338ca; }
.netdisk-link-card { display:flex; align-items:center; gap:var(--sp-4); padding:var(--sp-5); background:var(--gradient-brand-light); border:1px solid var(--color-border); border-radius:var(--radius-lg); flex-wrap:wrap; }

/* ---- 课程评价卡 ---- */
.review-card { background:var(--color-bg-elevated); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--sp-5); }
.review-card__head { display:flex; align-items:center; gap:var(--sp-3); margin-bottom:var(--sp-2); }
.review-card__name { font-weight:600; font-size:var(--fs-base); }
.review-card__time { font-size:var(--fs-xs); color:var(--color-text-muted); margin-left:auto; }
.review-card__course { font-size:var(--fs-sm); color:var(--color-primary); margin-bottom:var(--sp-2); font-weight:500; }
.review-card__text { font-size:var(--fs-base); line-height:var(--lh-relaxed); color:var(--color-text); margin-top:var(--sp-2); }
.review-card__teacher { font-size:var(--fs-xs); color:var(--color-text-muted); }

/* ---- 通知 ---- */
.notif-item { display:flex; gap:var(--sp-3); padding:var(--sp-4); border-bottom:1px solid var(--color-border); align-items:flex-start; }
.notif-item--unread { background:var(--color-info-light); }
.notif-item__icon { font-size:20px; flex-shrink:0; }
.notif-item__body { flex:1; }
.notif-item__text { font-size:var(--fs-base); color:var(--color-text); }
.notif-item__time { font-size:var(--fs-xs); color:var(--color-text-muted); margin-top:2px; }
.notif-icon-wrap { position:relative; }
.badge--dot { position:absolute; top:-5px; right:-5px; min-width:17px; height:17px; padding:0 4px; border-radius:9px; background:var(--color-danger); color:#fff; font-size:10px; display:flex; align-items:center; justify-content:center; font-weight:700; box-shadow:0 0 0 2px var(--color-bg-elevated); }

/* ---- 管理后台 ---- */
.admin-tabs { display:flex; gap:var(--sp-1); border-bottom:2px solid var(--color-border); margin-bottom:var(--sp-6); overflow-x:auto; }
.admin-tab { padding:10px 18px; font-size:var(--fs-base); color:var(--color-text-secondary); border-bottom:2px solid transparent; margin-bottom:-2px; white-space:nowrap; cursor:pointer; font-weight:500; text-decoration:none; }
.admin-tab--active { color:var(--color-primary); border-color:var(--color-primary); font-weight:600; }
.admin-stat { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:var(--sp-4); margin-bottom:var(--sp-6); }
.admin-stat__card { background:var(--color-bg-elevated); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--sp-5); text-align:center; }
.admin-stat__num { font-size:var(--fs-4xl); font-weight:800; color:var(--color-primary); }
.admin-stat__label { font-size:var(--fs-xs); color:var(--color-text-muted); margin-top:4px; }
.admin-table { width:100%; border-collapse:collapse; font-size:var(--fs-base); }
.admin-table th { text-align:left; padding:10px 12px; background:var(--color-bg-muted); color:var(--color-text-secondary); font-weight:600; font-size:var(--fs-sm); position:sticky; top:0; }
.admin-table td { padding:10px 12px; border-bottom:1px solid var(--color-border); vertical-align:middle; }
.admin-table tr:hover td { background:var(--color-bg-muted); }
.admin-table__wrap { overflow-x:auto; border:1px solid var(--color-border); border-radius:var(--radius-lg); }

/* ---- 举报浮层 ---- */
.report-modal { position:fixed; inset:0; background:var(--color-bg-overlay); display:none; align-items:center; justify-content:center; z-index:var(--z-modal); padding:var(--sp-4); }
.report-modal.open { display:flex; }
.report-modal__card { background:var(--color-bg-elevated); border-radius:var(--radius-xl); padding:var(--sp-6); max-width:440px; width:100%; box-shadow:var(--shadow-xl); }
.report-modal__title { font-size:var(--fs-xl); font-weight:700; margin-bottom:var(--sp-3); }
.report-modal__cat { display:flex; flex-wrap:wrap; gap:var(--sp-2); margin:var(--sp-3) 0; }
.report-cat { padding:6px 14px; border:1px solid var(--color-border); border-radius:var(--radius-full); font-size:var(--fs-sm); cursor:pointer; color:var(--color-text-secondary); }
.report-cat--active { background:var(--color-primary); color:#fff; border-color:var(--color-primary); }

/* ---- 等级徽章 ---- */
.level-badge { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:var(--radius-full); font-size:var(--fs-xs); font-weight:600; background:var(--gradient-brand-light); color:var(--color-primary-dark); border:1px solid var(--color-border); }

/* ---- 上传模式切换(文件 / 网盘)---- */
.upload-mode { display:flex; gap:var(--sp-2); margin-bottom:var(--sp-4); background:var(--color-bg-muted); padding:4px; border-radius:var(--radius-full); width:fit-content; }
.upload-mode__opt { padding:8px 20px; border-radius:var(--radius-full); font-size:var(--fs-sm); font-weight:500; cursor:pointer; color:var(--color-text-secondary); }
.upload-mode__opt--active { background:var(--color-bg-elevated); color:var(--color-primary); box-shadow:var(--shadow-sm); }

/* ---- 响应式 ---- */
@media (max-width:768px) {
  .auth-card { flex-direction:column !important; }
  .auth-card__brand { display:none; }
  .auth-card__form { width:100% !important; }
  .scope-switch { flex-wrap:wrap; }
  .scope-btn { padding:5px 10px; font-size:var(--fs-xs); }
}
