/* ============================================================
 * v37：顶部头像下拉菜单
 * ============================================================ */
.nav-avatar-wrap{cursor:pointer;position:relative;}
.nav-user-menu{
  position:fixed;top:60px;right:20px;width:260px;
  background:var(--card);border:1px solid rgba(15,17,21,.08);border-radius:14px;
  box-shadow:0 16px 48px rgba(15,17,21,.18);
  z-index: var(--z-modal);padding:8px;
  opacity:0;transform:translateY(-8px) scale(.97);pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
  transform-origin:top right;
}
.nav-user-menu.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.num-header{display:flex;align-items:center;gap:12px;padding:10px 10px 8px;}
.num-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--indigo),var(--indigo));color:var(--card);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0;}
.num-user-info{flex:1;min-width:0;}
.num-username{font-size:15px;font-weight:700;color:var(--dark);line-height:1.3;}
.num-level{font-size:11px;color:var(--ink-3);margin-top:2px;}
.num-vip-info{margin:4px 8px 8px;padding:10px 12px;border-radius:10px;background:linear-gradient(135deg,rgba(79,107,237,.08),rgba(99,102,241,.05));display:flex;align-items:center;justify-content:space-between;}
.num-vip-badge{font-size:11px;font-weight:700;color:var(--indigo);background:rgba(79,107,237,.12);padding:2px 8px;border-radius:999px;}
.num-vip-days{font-size:11px;color:var(--ink-2);}
.num-vip-none{font-size:12px;color:var(--ink-3);}
.num-divider{height:1px;background:rgba(15,17,21,.07);margin:4px 6px;}
.num-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:transparent;color:var(--ink);font-size:13.5px;font-weight:500;cursor:pointer;border-radius:8px;transition:background .15s;font-family:inherit;text-align:left;}
.num-item svg{color:var(--ink-3);flex-shrink:0;}
.num-item span{flex:1;}
.num-item:hover{background:rgba(79,107,237,.07);color:var(--indigo);}
.num-item:hover svg{color:var(--indigo);}
.num-item-danger:hover{background:rgba(239,68,68,.07);color:var(--error);}
.num-item-danger:hover svg{color:var(--error);}
.num-badge{background:var(--error);color:var(--card);font-size:10px;font-weight:700;padding:1px 7px;border-radius:999px;flex:none!important;}
nav .nav-inner{overflow-x:visible!important;}
@media(max-width:768px){.nav-user-menu{right:10px;top:54px;width:calc(100vw - 20px);}}

/* ---------- v37：自习室名片重排 ---------- */
.sr2-id-me{display:flex;align-items:flex-start;gap:12px;}
.sr2-id-me-tx{flex:1;min-width:0;}
.sr2-id-topbtn{flex-shrink:0;padding:7px 14px;font-size:12px;border-radius:8px;white-space:nowrap;}
.sr2-id-meter-v37{display:flex;align-items:center;gap:10px;margin-top:10px;}
.sr2-bar-v37{flex:1;min-width:0;}
.sr2-id-editbtn{flex-shrink:0;padding:6px 14px;font-size:12px;border-radius:8px;white-space:nowrap;}
/* 身份证/实名选填标签 */
.rp-optional-tag{font-size:11px;color:var(--ink-3);font-weight:500;margin-left:4px;}
/* 隐藏旧的名片完整度文字（如有残留） */
.sr2-id-meter .m-left span{display:none;}

/* ============================================================
 * CLIB FDE 自习室 v2 · 课题共创空间 样式
 * ============================================================ */

/* ---------- 课题大厅 ---------- */
.srv2-hall-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.srv2-hh-text{flex:1;min-width:200px;}
.srv2-hh-title{font-size:20px;font-weight:700;color:var(--card);margin:0 0 4px;}
.srv2-hh-sub{font-size:13px;color:var(--ink-3);margin:0;}
.srv2-btn-create{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--indigo),var(--indigo));color:var(--card);border:none;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;}
.srv2-btn-create:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(79,107,237,.4);}

.srv2-cat-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.srv2-cat{padding:6px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:var(--ink-3);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;}
.srv2-cat:hover{border-color:rgba(79,107,237,.4);color:var(--line);}
.srv2-cat.on{background:rgba(79,107,237,.15);border-color:var(--indigo);color:var(--indigo);font-weight:600;}

.srv2-hall-scroll{display:flex;gap:16px;overflow-x:auto;padding:8px 4px 16px;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(79,107,237,.3) transparent;}
.srv2-hall-scroll::-webkit-scrollbar{height:6px;}
.srv2-hall-scroll::-webkit-scrollbar-track{background:transparent;}
.srv2-hall-scroll::-webkit-scrollbar-thumb{background:rgba(79,107,237,.3);border-radius:3px;}

.srv2-card{flex:0 0 280px;background:var(--ink);border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;cursor:pointer;transition:all .25s;}
.srv2-card:hover{transform:translateY(-3px);border-color:rgba(79,107,237,.4);box-shadow:0 8px 32px rgba(0,0,0,.4);}

.srv2-card-cover{height:120px;position:relative;display:flex;align-items:center;justify-content:center;}
.srv2-cover-rag{background:linear-gradient(135deg,rgba(79,107,237,.25),rgba(79,107,237,.05));color:var(--indigo);}
.srv2-cover-agent{background:linear-gradient(135deg,rgba(139,92,246,.25),rgba(139,92,246,.05));color:var(--indigo-600);}
.srv2-cover-data{background:linear-gradient(135deg,rgba(16,185,129,.25),rgba(16,185,129,.05));color:var(--success);}
.srv2-cover-auto{background:linear-gradient(135deg,rgba(245,158,11,.25),rgba(245,158,11,.05));color:var(--gold-400);}
.srv2-cover-industry{background:linear-gradient(135deg,rgba(6,182,212,.25),rgba(6,182,212,.05));color:var(--indigo-400);}
.srv2-card-icon{opacity:.7;}

.srv2-card-status{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;backdrop-filter:blur(8px);}
.srv2-st-open{background:rgba(16,185,129,.2);color:var(--success);}
.srv2-st-full{background:rgba(245,158,11,.2);color:var(--gold-400);}
.srv2-st-closed{background:rgba(102,102,102,.2);color:var(--ink-3);}

.srv2-card-body{padding:14px;}
.srv2-card-tags{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap;}
.srv2-tag{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;}
.srv2-tag-rag{background:rgba(79,107,237,.15);color:var(--indigo);}
.srv2-tag-agent{background:rgba(139,92,246,.15);color:var(--indigo-600);}
.srv2-tag-data{background:rgba(16,185,129,.15);color:var(--success);}
.srv2-tag-auto{background:rgba(245,158,11,.15);color:var(--gold-400);}
.srv2-tag-industry{background:rgba(6,182,212,.15);color:var(--indigo-400);}
.srv2-tag-diff{background:rgba(255,255,255,.06);color:var(--ink-3);}

.srv2-card-title{font-size:15px;font-weight:700;color:var(--card);margin:0 0 6px;line-height:1.4;}
.srv2-card-desc{font-size:12px;color:var(--ink-3);margin:0 0 10px;line-height:1.5;height:36px;overflow:hidden;}
.srv2-card-meta{display:flex;gap:12px;font-size:11px;color:var(--ink-3);align-items:center;flex-wrap:wrap;}
.srv2-card-meta span{display:inline-flex;align-items:center;gap:3px;}
.srv2-card-skills{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap;}
.srv2-skill{padding:2px 6px;border-radius:4px;background:rgba(79,107,237,.1);color:var(--indigo-400);font-size:10px;font-weight:500;}

.srv2-hall-foot{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;}
.srv2-dots{display:flex;gap:6px;}
.srv2-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.15);cursor:pointer;transition:all .2s;}
.srv2-dot.on{background:var(--indigo);width:20px;border-radius:3px;}
.srv2-hint{font-size:11px;color:var(--ink-2);}

.srv2-empty{text-align:center;padding:40px 20px;color:var(--ink-2);}
.srv2-empty-ic{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:24px;color:var(--ink-3);}
.srv2-empty h3{font-size:16px;color:var(--ink-3);margin:0 0 8px;}
.srv2-empty p{font-size:13px;color:var(--ink-2);margin:0;}
.srv2-empty-sm{padding:20px;text-align:center;color:var(--ink-2);font-size:13px;}

/* ---------- 任务看板 ---------- */
.srv2-board{padding:16px;}
.srv2-board-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.srv2-board-head h4{font-size:16px;font-weight:700;color:var(--card);margin:0;}
.srv2-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:var(--line);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;}
.srv2-btn:hover{border-color:rgba(79,107,237,.4);color:var(--card);}
.srv2-btn-primary{background:linear-gradient(135deg,var(--indigo),var(--indigo));border-color:transparent;color:var(--card);}
.srv2-btn-primary:hover{box-shadow:0 2px 12px rgba(79,107,237,.4);}
.srv2-btn-sm{padding:4px 10px;font-size:11px;}

.srv2-board-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.srv2-board-col{background:rgba(255,255,255,.02);border-radius:10px;padding:10px;min-height:200px;}
.srv2-col-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;margin-bottom:8px;border-left:3px solid var(--ink-2);border-radius:0 4px 4px 0;}
.srv2-col-title{font-size:13px;font-weight:600;color:var(--line);}
.srv2-col-count{font-size:11px;color:var(--ink-3);background:rgba(255,255,255,.06);padding:1px 7px;border-radius:999px;}
.srv2-col-tasks{display:flex;flex-direction:column;gap:8px;}
.srv2-col-empty{text-align:center;padding:20px 10px;font-size:11px;color:var(--ink-2);}

.srv2-task-card{background:var(--ink);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px;cursor:pointer;transition:all .2s;}
.srv2-task-card:hover{border-color:rgba(79,107,237,.3);transform:translateY(-1px);}
.srv2-task-title{font-size:12px;font-weight:600;color:var(--line);margin-bottom:4px;line-height:1.4;}
.srv2-task-desc{font-size:11px;color:var(--ink-3);margin-bottom:6px;line-height:1.4;}
.srv2-task-meta{display:flex;justify-content:space-between;align-items:center;font-size:10px;}
.srv2-task-assignee{color:var(--indigo);font-weight:500;}
.srv2-task-unassigned{color:var(--gold-400);}
.srv2-task-due{color:var(--ink-3);}
.srv2-task-due.urgent{color:var(--gold-400);font-weight:600;}
.srv2-task-due.overdue{color:var(--error);font-weight:600;}
.srv2-task-skills{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap;}
.srv2-mini-skill{padding:1px 5px;border-radius:3px;background:rgba(79,107,237,.1);color:var(--indigo-400);font-size:9px;}

/* 任务详情 */
.srv2-task-detail{padding:8px 0;}
.srv2-task-detail h3{font-size:18px;font-weight:700;color:var(--card);margin:0 0 12px;}
.srv2-td-meta{display:flex;gap:16px;font-size:12px;color:var(--ink-3);margin-bottom:16px;flex-wrap:wrap;}
.srv2-td-desc,.srv2-td-accept{font-size:13px;color:var(--line);line-height:1.6;margin-bottom:12px;}
.srv2-td-desc b,.srv2-td-accept b{color:var(--line);display:block;margin-bottom:4px;}
.srv2-td-skills{margin-bottom:16px;}
.srv2-td-skills b{color:var(--line);font-size:13px;display:block;margin-bottom:6px;}
.srv2-td-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* 课题详情Tab */
.srv2-rt-tab{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border:none;background:transparent;color:var(--ink-3);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;border-bottom:2px solid transparent;}
.srv2-rt-tab:hover{color:var(--line);}
.srv2-rt-tab.on{color:var(--indigo);border-bottom-color:var(--indigo);}

/* ---------- 我的自习室 ---------- */
.srv2-my-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
.srv2-stat{background:var(--ink);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:16px;text-align:center;}
.srv2-stat-n{font-size:28px;font-weight:800;color:var(--indigo);margin-bottom:4px;}
.srv2-stat-l{font-size:12px;color:var(--ink-3);}

.srv2-panel{background:var(--ink);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:16px;margin-bottom:16px;}
.srv2-panel-title{font-size:15px;font-weight:700;color:var(--card);margin:0 0 12px;display:flex;align-items:center;gap:8px;}
.srv2-panel-sub{font-size:11px;color:var(--ink-2);font-weight:400;}

/* 能力维度 */
.srv2-abilities{display:flex;flex-direction:column;gap:8px;}
.srv2-ability-row{display:flex;align-items:center;gap:10px;}
.srv2-ability-label{width:120px;font-size:12px;color:var(--line);display:flex;align-items:center;gap:6px;flex-shrink:0;}
.srv2-ability-code{font-size:10px;font-weight:700;color:var(--indigo);background:rgba(79,107,237,.15);padding:1px 5px;border-radius:3px;}
.srv2-ability-bar{flex:1;height:8px;background:rgba(255,255,255,.05);border-radius:4px;overflow:hidden;}
.srv2-ability-fill{height:100%;background:linear-gradient(90deg,var(--indigo),var(--indigo));border-radius:4px;transition:width .5s;}
.srv2-ability-val{width:36px;text-align:right;font-size:12px;font-weight:600;color:var(--line);}

/* 技能树 */
.srv2-skills{display:flex;flex-direction:column;gap:10px;}
.srv2-skill-row{}
.srv2-skill-head{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.srv2-skill-name{font-size:13px;font-weight:600;color:var(--line);flex:1;}
.srv2-skill-level{font-size:11px;font-weight:600;}
.srv2-skill-count{font-size:10px;color:var(--ink-2);}
.srv2-skill-bar{height:6px;background:rgba(255,255,255,.05);border-radius:3px;overflow:hidden;}
.srv2-skill-fill{height:100%;border-radius:3px;transition:width .5s;}

/* 待办任务列表 */
.srv2-task-list{display:flex;flex-direction:column;gap:8px;}
.srv2-task-item{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .2s;}
.srv2-task-item:hover{border-color:rgba(79,107,237,.3);background:rgba(79,107,237,.05);}
.srv2-ti-title{font-size:13px;font-weight:600;color:var(--line);margin-bottom:4px;}
.srv2-ti-meta{display:flex;justify-content:space-between;font-size:11px;}
.srv2-ti-project{color:var(--ink-2);}
.srv2-ti-due{color:var(--ink-3);}
.srv2-ti-due.urgent{color:var(--gold-400);font-weight:600;}
.srv2-ti-due.overdue{color:var(--error);font-weight:600;}

/* 作品集 */
.srv2-portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.srv2-portfolio-card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.05);border-radius:10px;overflow:hidden;transition:all .2s;}
.srv2-portfolio-card:hover{border-color:rgba(79,107,237,.3);transform:translateY(-2px);}
.srv2-pf-cover{height:100px;background:linear-gradient(135deg,rgba(79,107,237,.2),rgba(139,92,246,.1));}
.srv2-pf-body{padding:12px;}
.srv2-pf-body h5{font-size:13px;font-weight:700;color:var(--line);margin:0 0 4px;}
.srv2-pf-body p{font-size:11px;color:var(--ink-3);margin:0 0 8px;line-height:1.4;}
.srv2-pf-tech{display:flex;gap:4px;flex-wrap:wrap;}
.srv2-pf-tech span{padding:1px 6px;border-radius:3px;background:rgba(79,107,237,.1);color:var(--indigo-400);font-size:10px;}

/* 导航项统一 */
.srv2-nav-item{}

/* 响应式 */
@media(max-width:768px){
  .srv2-board-cols{grid-template-columns:repeat(2,1fr);}
  .srv2-my-stats{grid-template-columns:repeat(2,1fr);}
  .srv2-card{flex:0 0 240px;}
}
