/* ============================================================
 * 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 0.16s ease,transform 0.16s 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: 8px 8px 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: 17px;font-weight: 600;flex-shrink:0;}
.num-user-info{flex:1;min-width:0;}
.num-username{font-size: 17px;font-weight: 600;color:var(--dark);line-height:1.3;}
.num-level{font-size: 12px;color:var(--ink-3);margin-top: 4px;}
.num-vip-info{margin: 4px 8px 8px;padding: 8px 12px;border-radius: 14px;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: 12px;font-weight: 600;color:var(--indigo);background:rgba(79,107,237,.12);padding: 4px 8px;border-radius: 999px;}
.num-vip-days{font-size: 12px;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 8px;}
.num-item{display:flex;align-items:center;gap: 8px;width:100%;padding: 8px 8px;border:none;background:transparent;color:var(--ink);font-size: 13px;font-weight: 500;cursor:pointer;border-radius: 14px;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:#D92D20;color:#FFFFFF;}
.num-item-danger:hover svg{color:#FFFFFF;}
.num-badge{background:var(--error);color:var(--card);font-size: 12px;font-weight: 600;padding: 1px 8px;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: 8px 16px;font-size: 12px;border-radius: 14px;white-space:nowrap;}
.sr2-id-meter-v37{display:flex;align-items:center;gap: 8px;margin-top: 8px;}
.sr2-bar-v37{flex:1;min-width:0;}
.sr2-id-editbtn{flex-shrink:0;padding: 8px 16px;font-size: 12px;border-radius: 14px;white-space:nowrap;}
/* 身份证/实名选填标签 */
.rp-optional-tag{font-size: 12px;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: 17px;font-weight: 600;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: 8px;background:linear-gradient(135deg,var(--indigo),var(--indigo));color:var(--card);border:none;padding: 8px 20px;border-radius: 14px;font-size: 13px;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: 8px 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: 14px;}

.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 0.22s;}
.srv2-card:hover{transform:translateY(-3px);border-color:rgba(79,107,237,.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,#F2FBF5,#F2FBF5);color:var(--success);}
.srv2-cover-auto{background:linear-gradient(135deg,#F0F3FB,#F0F3FB);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: 4px 8px;border-radius: 999px;font-size: 12px;font-weight: 600;backdrop-filter:blur(8px);}
.srv2-st-open{background:#F2FBF5;color:var(--success);}
.srv2-st-full{background:#F0F3FB;color:var(--gold-400);}
.srv2-st-closed{background:rgba(102,102,102,.2);color:var(--ink-3);}

.srv2-card-body{padding: 16px;}
.srv2-card-tags{display:flex;gap: 8px;margin-bottom: 8px;flex-wrap:wrap;}
.srv2-tag{padding: 4px 8px;border-radius: 14px;font-size: 12px;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:#F2FBF5;color:var(--success);}
.srv2-tag-auto{background:#F0F3FB;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: 17px;font-weight: 600;color:var(--card);margin: 0 0 8px;line-height:1.4;}
.srv2-card-desc{font-size: 12px;color:var(--ink-3);margin: 0 0 8px;line-height:1.5;height:36px;overflow:hidden;}
.srv2-card-meta{display:flex;gap: 12px;font-size: 12px;color:var(--ink-3);align-items:center;flex-wrap:wrap;}
.srv2-card-meta span{display:inline-flex;align-items:center;gap: 4px;}
.srv2-card-skills{display:flex;gap: 4px;margin-top: 8px;flex-wrap:wrap;}
.srv2-skill{padding: 4px 8px;border-radius: 14px;background:rgba(79,107,237,.1);color:var(--indigo-400);font-size: 12px;font-weight: 500;}

.srv2-hall-foot{display:flex;align-items:center;justify-content:center;gap: 12px;margin-top: 8px;}
.srv2-dots{display:flex;gap: 8px;}
.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: 14px;}
.srv2-hint{font-size: 12px;color:var(--ink-2);}

.srv2-empty{text-align:center;padding: 32px 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: 22px;color:var(--ink-3);}
.srv2-empty h3{font-size: 17px;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: 17px;font-weight: 600;color:var(--card);margin: 0;}
.srv2-btn{display:inline-flex;align-items:center;gap: 4px;padding: 8px 16px;border-radius: 14px;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 8px;font-size: 12px;}

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

.srv2-task-card{background:var(--ink);border:1px solid rgba(255,255,255,.06);border-radius: 14px;padding: 8px;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: 12px;color:var(--ink-3);margin-bottom: 8px;line-height:1.4;}
.srv2-task-meta{display:flex;justify-content:space-between;align-items:center;font-size: 12px;}
.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: 8px;flex-wrap:wrap;}
.srv2-mini-skill{padding: 1px 4px;border-radius: 14px;background:rgba(79,107,237,.1);color:var(--indigo-400);font-size: 12px;}

/* 任务详情 */
.srv2-task-detail{padding: 8px 0;}
.srv2-task-detail h3{font-size: 17px;font-weight: 600;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: 8px;}
.srv2-td-actions{display:flex;gap: 8px;flex-wrap:wrap;}

/* 课题详情Tab */
.srv2-rt-tab{display:inline-flex;align-items:center;gap: 4px;padding: 8px 16px;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: 14px;padding: 16px;text-align:center;}
.srv2-stat-n{font-size: 34px;font-weight: 600;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: 14px;padding: 16px;margin-bottom: 16px;}
.srv2-panel-title{font-size: 17px;font-weight: 600;color:var(--card);margin: 0 0 12px;display:flex;align-items:center;gap: 8px;}
.srv2-panel-sub{font-size: 12px;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: 8px;}
.srv2-ability-label{width:120px;font-size: 12px;color:var(--line);display:flex;align-items:center;gap: 8px;flex-shrink:0;}
.srv2-ability-code{font-size: 12px;font-weight: 600;color:var(--indigo);background:rgba(79,107,237,.15);padding: 1px 4px;border-radius: 14px;}
.srv2-ability-bar{flex:1;height:8px;background:rgba(255,255,255,.05);border-radius: 14px;overflow:hidden;}
.srv2-ability-fill{height:100%;background:linear-gradient(90deg,var(--indigo),var(--indigo));border-radius: 14px;transition: width 0.32s;}
.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: 8px;}
.srv2-skill-row{}
.srv2-skill-head{display:flex;align-items:center;gap: 8px;margin-bottom: 4px;}
.srv2-skill-name{font-size: 13px;font-weight: 600;color:var(--line);flex:1;}
.srv2-skill-level{font-size: 12px;font-weight: 600;}
.srv2-skill-count{font-size: 12px;color:var(--ink-2);}
.srv2-skill-bar{height:6px;background:rgba(255,255,255,.05);border-radius: 14px;overflow:hidden;}
.srv2-skill-fill{height:100%;border-radius: 14px;transition: width 0.32s;}

/* 待办任务列表 */
.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: 14px;padding: 8px 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: 12px;}
.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: 14px;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: 600;color:var(--line);margin: 0 0 4px;}
.srv2-pf-body p{font-size: 12px;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 8px;border-radius: 14px;background:rgba(79,107,237,.1);color:var(--indigo-400);font-size: 12px;}

/* 导航项统一 */
.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;}
}
