/*
============================================================
CampusTask 主站样式
============================================================
功能备注：
1. 本文件只负责主站视觉样式，不处理业务逻辑。
2. 页面整体采用蓝白配色，对应 CampusTask / ISA Wuhan 视觉体系。
3. 任务大厅三种难度、个人区、收藏区、法庭、弹窗、3D ISA Coin
   等样式均集中在这里。
4. .ct-auth-check 用于登录状态检查期间暂时隐藏页面，避免未登录用户
   在跳转登录页前短暂看到主站内容。
============================================================
*/
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0b2f67;
  --blue:#2563eb;
  --light:#9ec8ff;
  --bg:#eef4fb;
  --text:#12213a;
  --muted:#6f7e95;
  --line:#dbe6f3;
}
body{
  font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
}
button{font:inherit}

.topbar{
  height:72px;
  background:white;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 28px;
  position:sticky;
  top:0;
  z-index:30;
}
.brand{
  font-size:22px;
  font-weight:900;
  color:var(--navy);
}
.nav{
  display:flex;
  gap:10px;
  align-items:center;
}
.nav-btn{
  border:0;
  background:transparent;
  color:#526078;
  padding:10px 14px;
  border-radius:10px;
  cursor:pointer;
  font-weight:700;
}
.nav-btn:hover,.nav-btn.active{
  background:#edf4ff;
  color:var(--blue);
}
.right-tools{
  display:flex;
  gap:10px;
  align-items:center;
}
.balance-chip{
  border:0;
  border-radius:12px;
  padding:10px 14px;
  background:#edf4ff;
  color:var(--navy);
  font-weight:900;
}
.icon-btn,.lang-btn{
  border:1px solid #d8e4f4;
  background:white;
  color:#3e4e67;
  border-radius:12px;
  cursor:pointer;
  font-weight:800;
}
.icon-btn{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  font-size:20px;
}
.lang-btn{
  padding:10px 12px;
}
.icon-btn:hover,.lang-btn:hover{
  border-color:var(--blue);
  color:var(--blue);
}
.red-dot{
  position:absolute;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#ef4444;
  right:7px;
  top:7px;
  box-shadow:0 0 0 2px white;
}
.publish-btn{
  border:0;
  border-radius:12px;
  padding:11px 16px;
  cursor:pointer;
  font-weight:900;
  background:var(--blue);
  color:white;
}

.page{
  display:none;
  padding:22px 24px 34px;
  max-width:1500px;
  margin:auto;
}
.page.active{display:block}

.page-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:18px;
}
.page-head h1{font-size:30px;margin-bottom:5px}
.page-head p{font-size:14px;color:var(--muted)}

.board{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  height:calc(100vh - 140px);
  min-height:570px;
}
.column{
  border-radius:22px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  color:white;
  box-shadow:0 12px 30px rgba(22,55,110,.12);
}
.column.three{
  --panel:#0b2f67;
  --panel2:#133f7f;
  background:linear-gradient(180deg,var(--panel),var(--panel2));
}
.column.two{
  --panel:#1e5cce;
  --panel2:#3b82f6;
  background:linear-gradient(180deg,var(--panel),var(--panel2));
}
.column.one{
  --panel:#8cbcf7;
  --panel2:#b9d8ff;
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  color:#143760;
}

.column-head{
  padding:18px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.column.one .column-head{
  border-bottom:1px solid rgba(20,55,96,.15);
}
.stars{
  font-size:24px;
  letter-spacing:2px;
  margin-bottom:8px;
}
.column-head h2{
  font-size:21px;
  margin-bottom:5px;
}
.column-head p{
  font-size:12px;
  opacity:.84;
}

.emergency{
  margin:12px 12px 8px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);
  border-radius:14px;
  padding:11px;
}
.column.one .emergency{
  background:rgba(255,255,255,.35);
  border-color:rgba(20,55,96,.18);
}
.emergency-title{
  font-size:12px;
  font-weight:900;
  margin-bottom:8px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.emergency-carousel{
  overflow:hidden;
  position:relative;
  border-radius:10px;
}
.emergency-track{
  display:flex;
  transition:transform .3s ease;
  will-change:transform;
}
.emergency-slide{
  min-width:100%;
}
.emergency-card{
  background:white;
  color:#153153;
  border-radius:10px;
  padding:12px;
  cursor:pointer;
  min-height:96px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-width:0;
}
.emergency-card h4{
  font-size:14px;
  margin-bottom:6px;
  line-height:1.35;
  min-height:38px;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.emergency-card p{
  font-size:11px;
  color:#75839a;
  line-height:1.4;
  margin-bottom:8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.mini-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  font-size:11px;
  color:#718098;
  margin-top:auto;
}
.carousel-dots{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-top:9px;
  min-height:10px;
}
.carousel-dot{
  width:7px;
  height:7px;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.45);
  cursor:pointer;
  transition:.2s;
}
.column.one .carousel-dot{
  background:rgba(20,55,96,.25);
}
.carousel-dot.active{
  width:18px;
  background:white;
}
.column.one .carousel-dot.active{
  background:#143760;
}
.coin{
  font-weight:900;
  color:#0f4fb8;
  font-size:13px;
  background:#eef5ff;
  padding:4px 8px;
  border-radius:999px;
  white-space:nowrap;
}

.list-label{
  padding:4px 14px 9px;
  font-size:12px;
  opacity:.8;
  font-weight:800;
}
.task-list{
  overflow-y:auto;
  padding:0 12px 12px;
  flex:1;
}
.task{
  background:white;
  color:#153153;
  border-radius:13px;
  padding:12px;
  margin-bottom:9px;
  cursor:pointer;
  border:1px solid rgba(255,255,255,.55);
  transition:.18s;
}
.task:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(20,50,95,.15);
}
.task h3{
  font-size:14px;
  margin-bottom:6px;
}
.task p{
  font-size:12px;
  line-height:1.45;
  color:#6e7b90;
}
.task-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:9px;
  font-size:11px;
  color:#8b97aa;
}
.task-bottom strong{
  color:#0f4fb8;
  font-size:14px;
  background:#eef5ff;
  padding:5px 9px;
  border-radius:999px;
  white-space:nowrap;
}

.simple-card{
  background:white;
  border:1px solid var(--line);
  border-radius:18px;
  padding:26px;
  max-width:760px;
}
.simple-card h2{margin-bottom:10px}
.simple-card p{
  color:var(--muted);
  line-height:1.7;
}
.claim-card{
  margin-top:18px;
  background:#f6faff;
  border:1px solid #d4e6ff;
  border-radius:14px;
  padding:18px;
}
.claim-title{
  font-size:18px;
  font-weight:900;
  color:var(--navy);
  margin-bottom:8px;
}
.claim-info{
  color:#687991;
  font-size:13px;
  line-height:1.7;
  margin-bottom:14px;
}
.claim-btn{
  border:0;
  background:var(--blue);
  color:white;
  border-radius:10px;
  padding:11px 15px;
  font-weight:900;
  cursor:pointer;
}
.claim-btn:disabled{
  background:#b5c3d8;
  cursor:not-allowed;
}
.supply-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:18px;
}
.supply-box{
  background:#f7f9fc;
  border:1px solid #e1e8f2;
  border-radius:12px;
  padding:14px;
}
.supply-box small{
  color:#7f8da1;
}
.supply-box strong{
  display:block;
  margin-top:5px;
  font-size:18px;
  color:#19395f;
}

.modal-bg{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(8,24,52,.52);
  z-index:100;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal-bg.show{display:flex}
.modal{
  background:white;
  width:min(650px,100%);
  max-height:90vh;
  overflow:auto;
  border-radius:20px;
  padding:23px;
}
.modal-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:18px;
}
.close-btn{
  width:34px;height:34px;border:0;border-radius:50%;
  background:#eff4fa;cursor:pointer;font-size:18px
}
.form-row{margin-bottom:14px}
.form-row label{
  display:block;
  font-size:13px;
  font-weight:800;
  margin-bottom:7px;
}
input,select,textarea{
  width:100%;
  border:1px solid #d7e2f1;
  border-radius:10px;
  padding:11px 12px;
  outline:none;
  font:inherit;
}
textarea{min-height:88px;resize:vertical}
.form-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.urgent-box{
  border:1px solid #bed6fb;
  background:#f5f9ff;
  border-radius:12px;
  padding:12px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.switch{
  width:48px;height:28px;border-radius:999px;
  background:#cbd6e6;position:relative;cursor:pointer;transition:.2s
}
.switch:after{
  content:"";position:absolute;width:22px;height:22px;border-radius:50%;
  background:white;left:3px;top:3px;transition:.2s;
  box-shadow:0 2px 6px rgba(0,0,0,.15)
}
.switch.on{background:var(--blue)}
.switch.on:after{left:23px}
.cost-note{
  background:#f6f8fb;
  border-radius:10px;
  padding:11px;
  margin-top:10px;
  color:#5e6c82;
  font-size:12px;
  line-height:1.6;
}
.actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:18px;
}
.secondary,.primary{
  border:0;
  border-radius:10px;
  padding:11px 16px;
  font-weight:800;
  cursor:pointer;
}
.secondary{background:#eef2f7;color:#57647a}
.primary{background:var(--blue);color:white}
.toast{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%) translateY(20px);
  background:#0e2d59;
  color:white;
  padding:11px 16px;
  border-radius:10px;
  opacity:0;
  transition:.2s;
  z-index:200;
  font-size:13px;
}
.toast.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

@media(max-width:950px){
  .nav{display:none}
  .board{
    grid-template-columns:1fr;
    height:auto;
  }
  .column{min-height:520px}
  .right-tools{gap:6px}
  .icon-btn{display:flex}
}

/* ---- Unified task-column layout ---- */
.column-head{
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.column-head .stars{
  line-height:1;
}
.column-head h2{
  line-height:1.25;
}
.column-head p{
  line-height:1.4;
}
.emergency{
  min-height:166px;
  display:flex;
  flex-direction:column;
}
.emergency-title{
  min-height:18px;
}
.emergency-carousel{
  flex:1;
}
.emergency-track,
.emergency-slide{
  height:100%;
}
.emergency-card{
  height:100%;
}
.task-list{
  min-height:0;
}
.task{
  min-height:112px;
  display:flex;
  flex-direction:column;
}
.task h3{
  line-height:1.35;
  min-height:38px;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.task p{
  min-height:34px;
}
.task-bottom{
  margin-top:auto;
}
/* Explicitly normalize the middle column */
.column.two .column-head,
.column.two .emergency,
.column.two .emergency-card,
.column.two .task{
  font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  letter-spacing:normal;
}


/* ---- Favorites / ISA Coin: real WebGL 3D ---- */
.coin-showcase{
  min-height:720px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
}
.coin-stage{
  width:min(760px,96vw);
  height:570px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:grab;
  user-select:none;
  touch-action:none;
  position:relative;
}
.coin-stage:active{cursor:grabbing}
#isaCoinCanvas{
  width:min(560px,92vw);
  height:min(560px,92vw);
  max-height:560px;
  display:block;
  outline:none;
  border-radius:26px;
}
.coin-hint{
  color:#718096;
  font-size:13px;
  text-align:center;
  line-height:1.8;
}
.coin-hint strong{color:#0b2f67}
.favorites-inner{max-width:1100px}
.favorites-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.favorite-task{
  background:#fff;
  border:1px solid #dfe8f3;
  border-radius:16px;
  padding:16px;
  cursor:pointer;
  transition:.18s;
}
.favorite-task:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(15,47,91,.08);
}
.favorite-task h3{font-size:15px;margin-bottom:8px;color:#16355f}
.favorite-task p{color:#74839a;font-size:12px;line-height:1.5;min-height:38px}
.favorite-task .task-bottom{margin-top:12px}
@media(max-width:850px){.favorites-grid{grid-template-columns:1fr}}
@media(max-width:650px){.coin-showcase{min-height:590px}.coin-stage{height:455px}}


#coinWebglFallback{
  display:none;
  width:390px;height:390px;border-radius:50%;
  position:absolute;inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  background:
    radial-gradient(circle,
      #9ec8ff 0 43%,
      #fff 43.5% 61%,
      #0b2f67 61.5% 100%);
  border:10px solid #0b2f67;
  box-shadow:0 24px 48px rgba(8,34,72,.24);
  align-items:center;justify-content:center;flex-direction:column;
  color:#0b2f67;font-weight:1000;
}
#coinWebglFallback .fallback-isa{font-size:92px;line-height:1}
#coinWebglFallback .fallback-wuhan{font-size:27px;letter-spacing:6px;color:#fff;margin-top:15px}


/* Stronger physical depth cue without changing the ISA Coin palette */
#coinCanvas, #isaCoinCanvas, canvas.coin-canvas {
    filter: drop-shadow(0 28px 24px rgba(5, 27, 62, .24));
}


.mini-isa-coin{
  width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  margin-right:7px;vertical-align:middle;flex:0 0 24px;
  background:radial-gradient(circle at 50% 50%,#9ec8ff 0 45%,#ffffff 46% 63%,#0b2f67 64% 100%);
  border:2px solid #0b2f67;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.72);
}
.mini-isa-coin span{font-size:6px;font-weight:1000;letter-spacing:-.2px;color:#0b2f67;line-height:1}
.balance-chip{display:flex;align-items:center;gap:2px}


.participant-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 8px;
  border-radius:999px;
  background:#eef5ff;
  color:#245da8;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.payment-summary{
  margin-top:6px;
  border:1px solid #dce6f3;
  border-radius:16px;
  overflow:hidden;
  background:#fbfdff;
}
.payment-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:13px 16px;
  border-bottom:1px solid #e8eef6;
  font-size:14px;
}
.payment-row:last-child{border-bottom:0}
.payment-row strong{color:#102f57}
.payment-total{
  background:#eef5ff;
  font-size:16px;
  font-weight:900;
}
.payment-note{
  margin-top:12px;
  padding:12px 14px;
  border-radius:12px;
  background:#f7f9fc;
  color:#66758a;
  font-size:12px;
  line-height:1.65;
}


.currency-collection{max-width:900px;margin:0 auto}
.currency-row{display:flex;align-items:center;gap:34px;padding:28px 30px;background:#fff;border:1px solid #dfe8f3;border-radius:20px}
.mini-isa-stage{width:118px;height:118px;flex:0 0 118px;display:flex;align-items:center;justify-content:center;perspective:700px}
.mini-isa-coin{position:relative;width:82px;height:82px;transform-style:preserve-3d;animation:miniIsaSpin 5.5s linear infinite}
.mini-isa-face{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;box-sizing:border-box;background:radial-gradient(circle at 50% 50%,#9ec8ff 0 48%,#fff 49% 65%,#0b2f67 66% 100%);border:3px solid #0b2f67;box-shadow:inset 0 0 0 2px rgba(255,255,255,.45),inset 6px 0 10px rgba(255,255,255,.22),inset -7px 0 10px rgba(11,47,103,.2)}
.mini-isa-front{transform:translateZ(6px)}
.mini-isa-back{transform:rotateY(180deg) translateZ(6px)}
.mini-isa-edge{position:absolute;top:5px;left:50%;width:12px;height:72px;transform:translateX(-50%) rotateY(90deg);background:repeating-linear-gradient(to bottom,#0b2f67 0 3px,#789dcc 3px 5px);border-radius:4px}
.mini-isa-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.mini-isa-inner strong{color:#0b2f67;font-size:23px;font-weight:1000;letter-spacing:.5px;line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.7)}
.mini-isa-inner span{margin-top:5px;color:#fff;font-size:7px;font-weight:900;letter-spacing:1.4px}
@keyframes miniIsaSpin{from{transform:rotateX(-8deg) rotateY(0deg)}to{transform:rotateX(-8deg) rotateY(360deg)}}
.currency-info{flex:1;min-width:0}
.currency-name{color:#16355f;font-size:19px;font-weight:950}
.currency-name span{margin-left:8px;color:#7a899c;font-size:12px;font-weight:700}
.currency-owned{display:flex;align-items:baseline;gap:8px;margin-top:12px;color:#66758a}
.currency-owned strong{color:#0b2f67;font-size:34px;line-height:1}
.currency-owned em{color:#0b2f67;font-size:14px;font-style:normal;font-weight:900}
.currency-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.currency-stat{padding:13px 15px;border-radius:13px;background:#f5f8fc;border:1px solid #e6edf6}
.currency-stat span{display:block;color:#7b899d;font-size:11px;margin-bottom:5px}
.currency-stat strong{color:#17385f;font-size:14px}
@media(max-width:650px){.currency-row{align-items:flex-start;gap:18px;padding:22px 18px}.mini-isa-stage{width:92px;height:92px;flex-basis:92px}.mini-isa-coin{width:70px;height:70px}.mini-isa-edge{height:60px}.currency-stats{grid-template-columns:1fr}}



/* 顶部目录栏：扁平 2D ISA Coin 图标 */
.header-isa-flat{
  width:24px;
  height:24px;
  flex:0 0 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:7px;
  border-radius:50%;
  border:2px solid #0b2f67;
  background:
    radial-gradient(circle at 50% 50%,
      #9ec8ff 0 45%,
      #ffffff 46% 64%,
      #0b2f67 65% 100%);
  color:#0b2f67;
  font-size:7px;
  line-height:1;
  font-weight:1000;
  letter-spacing:-.2px;
  box-shadow:none;
  transform:none;
  animation:none;
  perspective:none;
}
.balance-chip{
  display:flex;
  align-items:center;
}


/* 我的货币：直接复用外部 WebGL ISA Coin 的实时画面 */
.mini-isa-stage{
  width:118px !important;
  height:118px !important;
  flex:0 0 118px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  perspective:none !important;
}
#miniIsaCanvas{
  width:100px;
  height:100px;
  display:block;
  aspect-ratio:1 / 1;
  object-fit:contain;
  border-radius:0;
}
@media(max-width:650px){
  .mini-isa-stage{
    width:92px !important;
    height:92px !important;
    flex-basis:92px !important;
  }
  #miniIsaCanvas{
    width:80px;
    height:80px;
  }
}


/* “我的货币”小 ISA Coin：保持 WebGL 3D，本身更卡通一些 */
.mini-isa-stage{
  position:relative;
}
#miniIsaCanvas{
  width:100px !important;
  height:100px !important;
  aspect-ratio:1 / 1;
  display:block;
  border-radius:50%;
  background:#f4f9ff;
  box-shadow:
    0 0 0 3px #ffffff,
    0 0 0 6px #0b2f67,
    0 5px 0 rgba(11,47,103,.14);
}
.mini-isa-stage::before{
  content:"";
  position:absolute;
  width:23px;
  height:8px;
  border-radius:999px;
  left:27px;
  top:24px;
  background:rgba(255,255,255,.72);
  transform:rotate(-18deg);
  pointer-events:none;
  z-index:2;
}


/* “我的货币”小硬币：去掉外围边框，保留更干净的卡通质感 */
#miniIsaCanvas{
  width:100px !important;
  height:100px !important;
  display:block;
  aspect-ratio:1 / 1;
  border:none !important;
  outline:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:
    drop-shadow(0 6px 5px rgba(11,47,103,.16))
    saturate(1.08)
    contrast(1.03);
}
.mini-isa-stage{
  position:relative;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  overflow:visible;
}
.mini-isa-stage::before{
  content:"";
  position:absolute;
  width:20px;
  height:7px;
  border-radius:999px;
  left:28px;
  top:25px;
  background:rgba(255,255,255,.68);
  transform:rotate(-18deg);
  pointer-events:none;
  z-index:2;
  filter:blur(.2px);
}
.mini-isa-stage::after{
  content:"";
  position:absolute;
  width:56px;
  height:11px;
  left:31px;
  bottom:6px;
  border-radius:50%;
  background:rgba(26,66,120,.10);
  filter:blur(5px);
  pointer-events:none;
  z-index:-1;
}


/* ===== 个人区头像 ===== */
.profile-card-new{max-width:900px;background:#fff;border:1px solid #e1e9f3;border-radius:24px;padding:34px;display:grid;grid-template-columns:250px 1fr;gap:42px;align-items:center;box-shadow:0 14px 38px rgba(20,54,96,.08)}
.profile-avatar-column{text-align:center}
.profile-avatar-new{width:178px;height:178px;margin:0 auto 15px;border-radius:50%;background:#dcecff;overflow:hidden;position:relative;box-shadow:0 10px 26px rgba(19,58,108,.14)}
.profile-avatar-new img{position:absolute;width:165%;height:165%;left:-32.5%;top:-31%;object-fit:cover;mix-blend-mode:multiply;filter:grayscale(1) contrast(2.7) brightness(1.25);pointer-events:none;user-select:none}
.profile-avatar-tip{font-size:12px;color:#7c899b;margin-bottom:12px}
.profile-color-picker{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}
.profile-color{width:28px;height:28px;border-radius:50%;border:3px solid #fff;background:var(--c);box-shadow:0 0 0 1px #cad5e3;cursor:pointer;padding:0}
.profile-color.active{box-shadow:0 0 0 2px #174f9b}
.profile-user-name{font-size:29px;font-weight:800;color:#102b50}
.profile-user-sub{font-size:13px;color:#8793a3;margin:5px 0 26px}
.profile-stat-row{display:flex;gap:15px;margin-bottom:22px;flex-wrap:wrap}
.profile-stat-row>div{min-width:112px;padding:14px 16px;background:#f5f9fd;border-radius:14px}
.profile-stat-row strong{display:block;font-size:19px;color:#123e78}
.profile-stat-row span{display:block;font-size:12px;color:#7b899b;margin-top:4px}
.profile-avatar-policy{background:#f7faff;border-radius:14px;padding:14px 16px;font-size:13px;line-height:1.65;color:#64738a}
@media(max-width:700px){.profile-card-new{grid-template-columns:1fr;padding:26px 20px}.profile-main-new{text-align:center}.profile-stat-row{justify-content:center}}


/* ===== 个人区完善 ===== */
.profile-avatar-new img{
  width:124% !important;
  height:124% !important;
  left:-12% !important;
  top:-10% !important;
  object-fit:contain !important;
  object-position:center !important;
  filter:grayscale(1) contrast(2.35) brightness(1.18) !important;
}

.profile-name-line{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.profile-rename-btn{
  border:1px solid #bfd5f5;
  background:#f4f8ff;
  color:#1756a9;
  font-size:13px;
  font-weight:800;
  padding:8px 12px;
  border-radius:10px;
  cursor:pointer;
}
.profile-rename-btn:hover{background:#eaf3ff}

.profile-task-section{
  max-width:900px;
  margin-top:26px;
}
.profile-task-section-head h2{
  margin:0;
  font-size:22px;
  color:#102b50;
}
.profile-task-section-head p{
  margin:6px 0 18px;
  font-size:13px;
  color:#7d8999;
}
.profile-task-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.profile-task-panel{
  background:#fff;
  border:1px solid #e1e9f3;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(20,54,96,.05);
}
.profile-task-panel-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:16px 18px;
  font-weight:850;
  color:#173b6d;
  background:#f7faff;
  border-bottom:1px solid #e7edf5;
}
.profile-task-count{
  min-width:25px;
  height:25px;
  padding:0 7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#dfeeff;
  color:#1456ad;
  font-size:12px;
}
.profile-task-list{padding:10px}
.profile-mini-task{
  border:1px solid #e7edf5;
  border-radius:14px;
  padding:13px 14px;
  margin-bottom:9px;
  background:#fff;
  cursor:pointer;
  transition:.16s ease;
}
.profile-mini-task:last-child{margin-bottom:0}
.profile-mini-task:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(18,52,94,.08);
}
.profile-mini-task-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.profile-mini-task h3{
  margin:0;
  font-size:14px;
  color:#182f50;
  line-height:1.45;
}
.profile-mini-task-reward{
  white-space:nowrap;
  color:#1359bd;
  font-weight:900;
  font-size:13px;
}
.profile-mini-task-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  margin-top:9px;
  color:#748194;
  font-size:11px;
}
.profile-empty{
  padding:28px 18px;
  text-align:center;
  color:#95a0af;
  font-size:13px;
}

/* 名称修改弹窗 */
.profile-rename-modal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:9999;
  background:rgba(12,27,48,.35);
  backdrop-filter:blur(6px);
}
.profile-rename-modal.show{display:flex}
.profile-rename-box{
  width:min(430px,100%);
  background:#fff;
  border-radius:20px;
  padding:26px;
  position:relative;
  box-shadow:0 22px 70px rgba(10,35,75,.22);
}
.profile-rename-box h2{
  margin:0 0 7px;
  color:#102b50;
}
.profile-rename-box p{
  margin:0 0 18px;
  font-size:13px;
  color:#7a8797;
  line-height:1.55;
}
.profile-rename-box input{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cfdbea;
  border-radius:12px;
  padding:12px 13px;
  outline:none;
  font-size:15px;
}
.profile-rename-box input:focus{
  border-color:#4d8edb;
  box-shadow:0 0 0 3px rgba(65,130,210,.10);
}
.profile-rename-status{
  min-height:20px;
  margin-top:7px;
  font-size:12px;
}
.profile-rename-status.error{color:#d34b4b}
.profile-rename-status.ok{color:#229353}
.profile-rename-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:18px;
}
.profile-rename-actions button{
  border:0;
  border-radius:11px;
  padding:10px 15px;
  font-weight:800;
  cursor:pointer;
}
.profile-rename-actions .secondary{
  background:#eef2f7;
  color:#536174;
}
.profile-rename-actions .primary{
  background:#1458ad;
  color:#fff;
}
.profile-rename-close{
  position:absolute;
  right:15px;
  top:12px;
  width:32px;
  height:32px;
  border:0;
  border-radius:50%;
  background:#f2f5f9;
  color:#607086;
  font-size:21px;
  cursor:pointer;
}
@media(max-width:760px){
  .profile-task-grid{grid-template-columns:1fr}
}


.profile-custom-color{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:32px;
  padding:0 10px;
  border:1px solid #cad7e7;
  border-radius:999px;
  background:#fff;
  color:#53657b;
  font-size:12px;
  cursor:pointer;
}
.profile-custom-color input[type="color"]{
  width:22px;
  height:22px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.profile-custom-color input[type="color"]::-webkit-color-swatch-wrapper{padding:0}
.profile-custom-color input[type="color"]::-webkit-color-swatch{border:1px solid #c8d4e3;border-radius:50%}
.profile-color-cooldown,
.profile-rename-cooldown{
  margin-top:9px;
  font-size:11px;
  color:#8a96a7;
  line-height:1.5;
}
.profile-rename-cooldown{margin-top:7px}


/* 名称锁定：90 天内不可再次修改 */
.profile-rename-btn.is-locked{
  position:relative;
  cursor:not-allowed !important;
  opacity:.58;
  background:#f3f4f6 !important;
  color:#8b94a2 !important;
  border-color:#d7dde5 !important;
}
.profile-rename-btn.is-locked:hover::after{
  content:"⛔";
  position:absolute;
  right:-11px;
  top:-13px;
  font-size:18px;
  line-height:1;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.12));
  pointer-events:none;
}

/* 更稳定的调色盘：先选色，再应用 */
.profile-custom-color-wrap{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.profile-custom-color{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:0 10px 0 7px;
  border:1px solid #cad7e7;
  border-radius:999px;
  background:#fff;
  color:#53657b;
  font-size:12px;
  cursor:pointer;
  overflow:hidden;
}
.profile-custom-color input[type="color"]{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
}
.profile-color-preview{
  width:22px;
  height:22px;
  border-radius:50%;
  background:#dcecff;
  border:1px solid #bdcad9;
  flex:0 0 22px;
}
.profile-color-apply{
  border:1px solid #bfd5f5;
  background:#edf5ff;
  color:#1756a9;
  border-radius:999px;
  padding:8px 11px;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.profile-color-apply:hover{background:#e2efff}
.profile-color-apply:disabled{
  cursor:not-allowed;
  opacity:.5;
  background:#f1f3f6;
  color:#8c96a4;
  border-color:#d8dee6;
}


/* 头像黑色标识视觉居中：整体略微上移 */
.profile-avatar-new img{
  top:-14% !important;
}


.detail-action-row{width:100%}
.detail-workflow-btn{
  margin-left:auto;
  border:0;
  border-radius:12px;
  padding:11px 16px;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
  background:#1458ad;
  color:#fff;
  box-shadow:0 6px 16px rgba(20,88,173,.16);
}
.detail-workflow-btn:hover{background:#0f4f9f}
.detail-workflow-btn.complete{
  background:#1769c2;
}
.detail-workflow-btn.pay{
  background:#0f8b59;
  box-shadow:0 6px 16px rgba(15,139,89,.16);
}
.detail-workflow-btn:disabled{
  cursor:not-allowed;
  opacity:.58;
  box-shadow:none;
}
.detail-workflow-hint{
  margin-top:10px;
  padding:10px 12px;
  border-radius:10px;
  background:#f5f8fc;
  color:#66758a;
  font-size:12px;
  line-height:1.55;
}
@media(max-width:650px){
  .detail-workflow-btn{margin-left:0;width:100%}
}


/* ===== 法庭 ===== */
.court-page-head{align-items:flex-end}
.court-file-btn{
  border:0;
  border-radius:12px;
  padding:11px 16px;
  background:#163f78;
  color:#fff;
  font-weight:900;
  cursor:pointer;
}
.court-rule-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:28px;
}
.court-rule-card{
  background:#fff;
  border:1px solid #dfe7f1;
  border-radius:17px;
  padding:18px;
  display:grid;
  gap:5px;
}
.court-rule-icon{font-size:22px;margin-bottom:5px}
.court-rule-card strong{color:#17365f;font-size:14px}
.court-rule-card span{font-size:18px;font-weight:900;color:#0f559f}
.court-rule-card small{font-size:11px;line-height:1.55;color:#7f8b9b}
.court-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin:22px 0 12px;
}
.court-section-head h2{margin:0;color:#18375f;font-size:20px}
.court-section-head p{margin:5px 0 0;font-size:12px;color:#8994a2}
.court-ended-head{margin-top:34px}
.court-case-count{
  min-width:28px;height:28px;padding:0 8px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#e7f0fb;color:#19569a;font-weight:900;font-size:12px;
}
.court-case-list{display:grid;gap:14px}
.court-empty{
  padding:34px 20px;text-align:center;background:#fff;
  border:1px dashed #d7e0eb;border-radius:16px;color:#929eac;font-size:13px;
}
.court-case{
  background:#fff;border:1px solid #dfe7f1;border-radius:18px;padding:18px;
  box-shadow:0 7px 24px rgba(25,55,90,.045);
}
.court-case-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.court-case h3{margin:3px 0 7px;color:#172f50;font-size:17px}
.court-case-id{font-size:11px;color:#8290a1}
.court-case-status{
  padding:6px 10px;border-radius:999px;background:#eef5ff;color:#1859a8;
  font-size:11px;font-weight:900;white-space:nowrap;
}
.court-case-status.ended{background:#edf2f4;color:#53616e}
.court-case-meta{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:11px;color:#758294;margin-top:9px}
.court-case-statement{
  margin-top:14px;padding:12px 13px;background:#f7f9fc;border-radius:12px;
  color:#5f6e80;font-size:12px;line-height:1.65;
}
.court-fund-row{
  margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
}
.court-fund-box{background:#f8fafc;border:1px solid #e8edf3;border-radius:11px;padding:10px}
.court-fund-box span{display:block;color:#8995a4;font-size:10px;margin-bottom:4px}
.court-fund-box strong{color:#17385e;font-size:13px}
.court-vote-wrap{margin-top:16px}
.court-vote-bar{height:10px;background:#edf1f5;border-radius:999px;overflow:hidden;display:flex}
.court-vote-publisher{background:#315f9f}
.court-vote-worker{background:#77a8df}
.court-vote-labels{
  display:flex;justify-content:space-between;gap:12px;margin-top:7px;
  font-size:11px;color:#6d7988;font-weight:700;
}
.court-vote-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}
.court-vote-actions button{
  border:1px solid #cad8e8;background:#fff;color:#244e7c;
  border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer;
}
.court-vote-actions button.worker{background:#eef6ff}
.court-vote-actions button:disabled{cursor:not-allowed;opacity:.5}
.court-result{
  margin-top:14px;padding:12px 13px;border-radius:12px;background:#f1f6fb;
  color:#39556f;font-size:12px;line-height:1.6;
}
.court-result strong{color:#173d66}
.court-form{display:grid;gap:14px}
.court-form label{display:grid;gap:7px}
.court-form label>span{font-size:12px;font-weight:800;color:#485a70}
.court-form select,.court-form input,.court-form textarea{
  width:100%;box-sizing:border-box;border:1px solid #cfdae7;border-radius:11px;
  padding:11px 12px;font-size:14px;background:#fff;outline:none;
}
.court-form textarea{min-height:120px;resize:vertical;line-height:1.55}
.court-form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.court-modal-sub{font-size:12px;color:#7f8c9d;margin-top:4px}
.court-filing-summary{
  border:1px solid #dfe7f1;border-radius:13px;overflow:hidden;background:#fafcff;
}
.court-filing-summary div{
  display:flex;justify-content:space-between;gap:15px;padding:10px 12px;
  border-bottom:1px solid #e8edf3;font-size:12px;
}
.court-filing-summary div:last-child{border-bottom:0}
.court-filing-summary span{color:#8090a3}
.court-filing-summary strong{color:#294966}
.detail-court-btn{
  margin-left:auto;border:1px solid #d1a9a9;background:#fff6f6;color:#a13d3d;
  border-radius:12px;padding:10px 14px;font-size:12px;font-weight:900;cursor:pointer;
}
.detail-court-btn + .detail-workflow-btn{margin-left:0}
@media(max-width:760px){
  .court-rule-grid,.court-fund-row{grid-template-columns:1fr}
  .court-form-two{grid-template-columns:1fr}
  .court-case-top{flex-direction:column}
  .detail-court-btn{margin-left:0;width:100%}
}

/* 登录保护：鉴权未完成前隐藏主站 */
html.ct-auth-check body{visibility:hidden}
