/* =====================================================================
   课题申报与结题管理平台 · 专属组件
   （在 main.css 之后加载，只做课题场景的增量样式）
   ===================================================================== */

/* ---------- 二级导航（课题包 子导航）---------- */
.subnav-2{background:#f8fafc;border-bottom:1px solid var(--border);}
.subnav-2 .subnav-inner a{padding:.35rem .9rem;font-size:1rem;}

/* ---------- 限额进度条 ---------- */
.qbar{display:flex;align-items:center;gap:.6rem;min-width:190px;}
.qbar .bar{flex:1;height:8px;border-radius:99px;background:#eef2f7;overflow:hidden;}
.qbar .bar-fill{height:100%;border-radius:99px;transition:width .3s;}
.qbar .qtext{font-size:1rem;color:var(--text-soft);white-space:nowrap;}
.qbar.over .qtext{color:#a92d22;font-weight:700;}

/* ---------- 类别 chips ---------- */
.chips{display:flex;gap:.4rem;flex-wrap:wrap;}
.chip{
  display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .7rem;border-radius:99px;
  font-size:1rem;background:#eef2f7;color:var(--text-soft);border:1px solid var(--border);
}
.chip.on{background:var(--primary);color:#fff;border-color:var(--primary);}
.chip.gold{background:#fdf6e6;color:#8b6a06;border-color:#f0e2bd;}
.chip.red{background:#fceceb;color:#a92d22;border-color:#f6d6d3;}
.chip.blue{background:#e7f0fa;color:#0d4f7c;border-color:#cfe1f2;}
.chip.green{background:#e8f6ee;color:#1e6b4c;border-color:#cfe8d9;}

/* ---------- 课题指南列表 ---------- */
.guide-box{border:1px solid var(--border);border-radius:12px;background:#fff;}
.guide-box .gb-head{
  padding:.7rem .95rem;border-bottom:1px solid var(--border);font-weight:700;color:var(--primary);
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;
}
.guide-list{max-height:46vh;overflow:auto;padding:.3rem .2rem .3rem .95rem;}
.guide-list .gi{
  display:flex;gap:.6rem;padding:.4rem .5rem;border-radius:8px;line-height:1.7;
  border-bottom:1px dashed #eef2f7;
}
.guide-list .gi:last-child{border-bottom:none;}
.guide-list .gi:hover{background:#f6f9fc;}
.guide-list .gn{
  flex-shrink:0;min-width:2.2rem;text-align:center;font-weight:700;color:var(--accent);
  font-size:1rem;
}
.guide-list .gt{flex:1;min-width:0;}
.guide-list .gi.major .gn{color:#8b6a06;}

/* ---------- 竖向时间轴（流程留痕）---------- */
.kt-tl{position:relative;padding-left:1.3rem;}
.kt-tl::before{content:'';position:absolute;left:.35rem;top:.35rem;bottom:.35rem;width:2px;background:#e6edf5;}
.kt-tl .tl-i{position:relative;padding:0 0 .9rem .2rem;}
.kt-tl .tl-i:last-child{padding-bottom:0;}
.kt-tl .tl-i::before{
  content:'';position:absolute;left:-1.05rem;top:.45rem;width:9px;height:9px;border-radius:50%;
  background:#fff;border:2px solid var(--primary-soft);
}
.kt-tl .tl-i:first-child::before{background:var(--accent);border-color:var(--accent);}
.kt-tl .tl-t{font-weight:700;color:var(--primary);}
.kt-tl .tl-d{font-size:1rem;color:var(--text-soft);}

/* ---------- 表单：分区小标题 ---------- */
.sect{
  display:flex;align-items:center;gap:.5rem;margin:1.1rem 0 .6rem;
  padding-bottom:.35rem;border-bottom:2px solid #eef2f7;
  color:var(--primary);font-weight:700;
}
.sect:first-child{margin-top:0;}
.sect .sn{
  width:24px;height:24px;border-radius:7px;background:var(--primary);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;
}
.sect .hint{margin-left:auto;font-weight:400;font-size:1rem;color:var(--text-soft);}

/* ---------- 动态行表格 ---------- */
.dyn-table{width:100%;border-collapse:collapse;}
.dyn-table th{
  background:#eef2f7;color:var(--primary);font-weight:700;text-align:left;
  padding:.45rem .5rem;font-size:1rem;border:1px solid #dde5ee;white-space:nowrap;
}
.dyn-table td{border:1px solid #e6edf5;padding:.3rem;}
.dyn-table input,.dyn-table select{
  width:100%;border:1px solid var(--border);border-radius:6px;padding:.34rem .45rem;
  font-family:inherit;font-size:1rem;color:var(--text);background:#fff;
}
.dyn-table input:focus,.dyn-table select:focus{outline:none;border-color:var(--primary-soft);}
.dyn-table .rm{
  border:1px solid #f2c9c5;background:#fdecea;color:#c0392b;border-radius:6px;
  cursor:pointer;padding:.3rem .55rem;font-size:1rem;
}
.dyn-table .rm:hover{background:#f9d7d3;}
.dyn-wrap{overflow-x:auto;}
.rowbtn{
  border:1px dashed #cdd7e3;background:#fff;color:var(--primary);border-radius:8px;
  padding:.35rem .8rem;cursor:pointer;font-family:inherit;font-size:1rem;
}
.rowbtn:hover{border-color:var(--primary);background:#f6f9fc;}

/* ---------- 词数统计 ---------- */
.wordcount{font-size:1rem;color:var(--text-soft);}
.wordcount.over{color:#a92d22;font-weight:700;}

/* ---------- 材料清单 ---------- */
.mat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.7rem;}
.mat-item{border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem;background:#fff;}
.mat-item .mh{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;}
.mat-item .mh b{color:var(--primary);}
.mat-item .mh .req{color:#a92d22;font-weight:700;}

/* =====================================================================
   首页：课题申报专属封面（学术墨蓝 + 细金线，区别于课程建设平台的思政红金）
   ===================================================================== */
.kt-hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(1100px 520px at 88% -10%,rgba(224,179,74,.16),transparent 60%),
    radial-gradient(900px 480px at 6% 108%,rgba(31,111,178,.20),transparent 62%),
    linear-gradient(150deg,#062a47 0%,#0a3d62 52%,#0d4f7c 100%);
  color:#fff;
  min-height:100vh;
  display:flex;flex-direction:column;
}
.kt-hero .kt-grid-bg{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:64px 64px,64px 64px;
}
.kt-hero .kt-contour{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.kt-hero .kt-contour path{
  fill:none;stroke:rgba(224,179,74,.30);stroke-width:1;
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:ktDraw 2.4s ease-out forwards;
}
.kt-hero .kt-contour path:nth-child(2){animation-delay:.25s;stroke:rgba(255,255,255,.16);}
.kt-hero .kt-contour path:nth-child(3){animation-delay:.5s;stroke:rgba(224,179,74,.20);}
.kt-hero .kt-contour path:nth-child(4){animation-delay:.75s;stroke:rgba(255,255,255,.12);}
@keyframes ktDraw{to{stroke-dashoffset:0;}}
@media (prefers-reduced-motion:reduce){.kt-hero .kt-contour path{animation:none;stroke-dashoffset:0;}}

.kt-head{
  position:relative;z-index:2;
  padding:1rem var(--page-pad);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.kt-head .kb{display:flex;align-items:center;gap:.85rem;}
.kt-head .kb .logo{
  width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 30% 30%,#fff 0%,#ffd966 60%,#d4a017 100%);
  color:#062a47;font-weight:900;font-size:1.4rem;font-family:Georgia,serif;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.35);
}
.kt-head .kb .sn{font-size:1.05rem;font-weight:700;letter-spacing:.04em;line-height:1.25;}
.kt-head .kb .ss{font-size:1rem;color:rgba(255,255,255,.66);letter-spacing:.14em;}
.kt-head .ka{display:flex;align-items:center;gap:1rem;font-size:1rem;}
.kt-head .ka a{color:rgba(255,255,255,.86);}
.kt-head .ka a:hover{color:#e0b34a;}

.kt-main{
  position:relative;z-index:2;flex:1;
  padding:clamp(1.6rem,4vh,3rem) var(--page-pad) 1.2rem;
  display:flex;flex-direction:column;justify-content:center;gap:1.3rem;
}
.kt-kicker{
  display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;
  padding:.3rem .9rem;border-radius:99px;font-size:1rem;letter-spacing:.06em;
  background:rgba(224,179,74,.14);border:1px solid rgba(224,179,74,.42);color:#f2d98b;
}
.kt-title{
  margin:0;font-size:clamp(2rem,3.5vw,3.2rem);font-weight:800;letter-spacing:.02em;
  line-height:1.2;color:#fff;
}
.kt-title em{
  font-style:normal;
  background:linear-gradient(100deg,#ffe6a8,#e0b34a 60%,#fff2cf);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.kt-sub{margin:0;font-size:1.12rem;color:rgba(255,255,255,.80);max-width:62rem;line-height:1.85;}
.kt-sub b{color:#fff;font-weight:700;}

.kt-meta{display:flex;gap:.6rem;flex-wrap:wrap;}
.kt-meta .m{
  display:flex;align-items:center;gap:.42rem;padding:.32rem .8rem;border-radius:8px;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);font-size:1rem;
}
.kt-meta .m i{color:#e0b34a;}

/* 流程横向时间轴 */
.kt-flow{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;
  padding:.85rem 1rem;border-radius:12px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
}
.kt-flow .f{display:flex;align-items:center;gap:.5rem;min-width:0;}
.kt-flow .f .n{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:rgba(224,179,74,.2);border:1px solid rgba(224,179,74,.5);color:#f2d98b;
  display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;
}
.kt-flow .f .t{min-width:0;}
.kt-flow .f .t b{display:block;font-size:1rem;color:#fff;line-height:1.3;}
.kt-flow .f .t small{display:block;font-size:1rem;color:rgba(255,255,255,.58);line-height:1.3;}

.kt-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;}
.kt-login-btn{
  border:none;cursor:pointer;font-family:inherit;font-size:1.05rem;font-weight:700;
  padding:.72rem 2.1rem;border-radius:99px;letter-spacing:.14em;
  background:linear-gradient(135deg,#ffe6a8,#e0b34a 55%,#d4a017);color:#062a47;
  box-shadow:0 8px 24px rgba(224,179,74,.28);
  transition:transform .2s,box-shadow .2s,opacity .2s;
}
.kt-login-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(224,179,74,.36);}
.kt-login-btn.gone{opacity:0;pointer-events:none;height:0;padding:0;margin:0;}
.kt-ghost{
  display:inline-flex;align-items:center;gap:.4rem;padding:.66rem 1.3rem;border-radius:99px;
  border:1px solid rgba(255,255,255,.30);color:rgba(255,255,255,.92);font-size:1rem;
}
.kt-ghost:hover{border-color:#e0b34a;color:#f2d98b;}

/* 端口卡片条 */
.kt-strip{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;
  max-height:0;overflow:hidden;opacity:0;transition:max-height .45s ease,opacity .35s ease;
}
.kt-strip.open{max-height:520px;opacity:1;}
.kt-strip .pc{
  display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border-radius:12px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;
  transition:background .2s,transform .2s,border-color .2s;
}
.kt-strip .pc:hover{background:rgba(255,255,255,.17);transform:translateY(-2px);border-color:rgba(224,179,74,.5);}
.kt-strip .pc .pi{
  width:40px;height:40px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
  background:rgba(224,179,74,.2);color:#f2d98b;
}
.kt-strip .pc h4{margin:0;font-size:1rem;color:#fff;line-height:1.3;}
.kt-strip .pc p{margin:.1rem 0 0;font-size:1rem;color:rgba(255,255,255,.62);line-height:1.35;}
.kt-strip .pc .go{margin-left:auto;color:rgba(255,255,255,.5);flex-shrink:0;}
.kt-strip-close{
  grid-column:1/-1;justify-self:center;cursor:pointer;font-size:1rem;
  color:rgba(255,255,255,.62);padding:.3rem .9rem;border-radius:99px;
  border:1px solid rgba(255,255,255,.18);
}
.kt-strip-close:hover{color:#f2d98b;border-color:rgba(224,179,74,.45);}

/* 首页底部：本期指标 + 指南速览 */
.kt-foot{
  position:relative;z-index:2;padding:.9rem var(--page-pad) 1.1rem;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:1rem;color:rgba(255,255,255,.62);
}
.kt-foot .fstats{display:flex;gap:1.3rem;flex-wrap:wrap;}
.kt-foot .fstats .fs b{color:#f2d98b;font-size:1.15rem;margin-right:.24rem;}
.kt-foot .fstats .fs span{color:rgba(255,255,255,.6);}

@media (max-width:1180px){
  .kt-strip{grid-template-columns:repeat(2,minmax(0,1fr));}
  .kt-flow{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:820px){
  .kt-strip{grid-template-columns:minmax(0,1fr);}
  .kt-flow{grid-template-columns:repeat(2,minmax(0,1fr));}
  .kt-hero{min-height:auto;}
}

/* ---------- 登录页（课题版：墨蓝学术风） ---------- */
.kt-login{
  min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  background:#f5f7fb;
}
.kt-login .left{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(900px 460px at 80% 0%,rgba(224,179,74,.16),transparent 60%),
    linear-gradient(150deg,#062a47,#0a3d62 55%,#0d4f7c);
  padding:clamp(1.6rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center;gap:1.1rem;
}
.kt-login .left .gridbg{
  position:absolute;inset:0;opacity:.45;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:56px 56px,56px 56px;
}
.kt-login .right{
  display:flex;align-items:center;justify-content:center;padding:clamp(1.4rem,4vw,3rem);
}
.kt-login .formcard{width:100%;max-width:520px;}
.role-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-bottom:1rem;}
.role-tabs .rt{
  border:1.5px solid var(--border);background:#fff;border-radius:10px;cursor:pointer;
  padding:.6rem .3rem;text-align:center;font-family:inherit;font-size:1rem;color:var(--text-soft);
  transition:all .18s;
}
.role-tabs .rt i{display:block;font-size:1.15rem;margin-bottom:.2rem;}
.role-tabs .rt:hover{border-color:var(--primary-soft);}
.role-tabs .rt.on{border-color:var(--primary);background:#eef5fb;color:var(--primary);font-weight:700;}
.role-hint{font-size:1rem;color:var(--text-soft);margin:-.4rem 0 .9rem;}
@media (max-width:900px){.kt-login{grid-template-columns:minmax(0,1fr);}.kt-login .left{min-height:auto;}}

/* ---------- 公示名单 ---------- */
.pub-list{border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.pub-list .pr{display:grid;grid-template-columns:56px minmax(0,2.4fr) minmax(0,1fr) 110px;gap:.6rem;
  padding:.55rem .8rem;border-bottom:1px solid #eef2f7;align-items:center;}
.pub-list .pr:last-child{border-bottom:none;}
.pub-list .pr.head{background:#eef2f7;font-weight:700;color:var(--primary);}
.pub-list .pr:nth-child(even){background:#fbfcfe;}

/* ---------- 危险按钮（删除类操作） ---------- */
.btn-danger{background:#fdecea;color:#a92d22;border-color:#f2c9c5;}
.btn-danger:hover{background:#c0392b;color:#fff;border-color:#c0392b;}

/* ---------- 勾选标签 ---------- */
label.check{
  display:flex;align-items:center;gap:.45rem;cursor:pointer;
  font-size:1rem;color:var(--text);padding:.35rem 0;
}
label.check input{width:1.05rem;height:1.05rem;accent-color:var(--primary);cursor:pointer;}

/* =====================================================================
   专家评审端
   ===================================================================== */
.review-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:1.1rem;align-items:start;}
@media (max-width:1080px){.review-shell{grid-template-columns:minmax(0,1fr);}}

/* 评分卡：逐分值打分点（纯 CSS，无 JS 也能选中） */
.dim-card{position:relative;transition:border-color .2s,background .2s;}
.dim-card.scored{border-color:#cfe8d9;background:linear-gradient(135deg,#f8fffb,#fff);}
.dim-card .head h5{display:flex;align-items:center;gap:.35rem;font-size:1.02rem;}
.dim-card .head .w{font-size:1rem;color:var(--text-soft);white-space:nowrap;}

.score-row{display:flex;flex-wrap:wrap;gap:.22rem;margin-top:.35rem;}
.score-in{position:absolute;width:0;height:0;opacity:0;pointer-events:none;}
.score-chip{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:2.15rem;padding:.28rem .28rem;border-radius:7px;
  border:1.5px solid var(--border);background:#fff;cursor:pointer;
  font-size:1rem;font-weight:700;line-height:1.2;color:var(--text-soft);
  transition:all .15s;user-select:none;
}
.score-chip:hover{border-color:var(--gold);color:var(--gold);}
.score-in:checked + .score-chip{
  background:var(--gold);border-color:var(--gold);color:var(--primary-deep);
  box-shadow:0 2px 6px rgba(212,160,23,.3);
}
.score-in:focus-visible + .score-chip{outline:2px solid var(--primary-soft);outline-offset:2px;}

.summary-bar{
  background:#fff;border-top:2px solid var(--border);
  margin:.9rem -1.2rem -.95rem;padding:.8rem 1.2rem;
  display:flex;justify-content:space-between;align-items:center;
  border-radius:0 0 var(--radius) var(--radius);flex-wrap:wrap;gap:.6rem;
}

/* 任务胶囊条 */
.task-chips{display:flex;flex-wrap:wrap;gap:.45rem;}
.task-chip{
  display:inline-flex;align-items:center;gap:.4rem;max-width:100%;
  padding:.34rem .8rem;border-radius:99px;border:1.5px solid var(--border);background:#fff;
  font-size:1rem;color:var(--text);transition:all .18s;
}
.task-chip:hover{border-color:var(--gold);color:var(--primary);}
.task-chip.cur{border-color:var(--gold);background:linear-gradient(135deg,#fffaf0,#fff);font-weight:700;color:var(--primary);}
.task-chip .dot{width:9px;height:9px;border-radius:99px;background:var(--gold);flex:none;}
.task-chip.done .dot{background:var(--success);}
.task-chip .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:15em;color:var(--text-soft);}

/* 论证正文（阅读态） */
.arg-body{
  border:1px solid var(--border);border-radius:9px;background:#fbfcfe;
  padding:.75rem .9rem;line-height:1.95;font-size:1rem;color:var(--text);
}
.arg-body p{margin:0 0 .55rem;}
.arg-body p:last-child{margin-bottom:0;}

