/* PLC 学习工坊 · 科技风主题皮肤（加法式覆盖，删除本文件即还原） */
:root{
  --t-bg:#070b14; --t-panel:rgba(14,22,38,.72);
  --t-line:rgba(56,189,248,.18); --t-line2:rgba(56,189,248,.38);
  --t-cyan:#22d3ee; --t-blue:#3b82f6; --t-violet:#8b5cf6;
  --t-ok:#34d399; --t-warn:#fbbf24; --t-bad:#f87171;
  --t-text:#e6f1ff; --t-mut:#8aa0b8;
  --t-glow:0 0 20px rgba(34,211,238,.28);
  --t-mono:'JetBrains Mono','Cascadia Mono',Consolas,monospace;
}
html,body{background-color:var(--t-bg)!important;color:var(--t-text)!important}
body{background-image:
  radial-gradient(900px 520px at 12% -10%,rgba(34,211,238,.10),transparent 60%),
  radial-gradient(820px 480px at 108% 6%,rgba(139,92,246,.10),transparent 62%),
  repeating-linear-gradient(0deg,rgba(56,189,248,.045) 0 1px,transparent 1px 44px),
  repeating-linear-gradient(90deg,rgba(56,189,248,.045) 0 1px,transparent 1px 44px)!important;
  background-attachment:fixed!important}
#tech-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
#tech-bg:before{content:"";position:absolute;left:-20%;top:-60%;width:140%;height:45%;
  background:linear-gradient(90deg,transparent,rgba(34,211,238,.055),transparent);
  transform:rotate(-8deg);animation:tsweep 10s linear infinite}
@keyframes tsweep{0%{top:-60%}100%{top:125%}}
*{scrollbar-width:thin;scrollbar-color:rgba(56,189,248,.4) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--t-cyan),var(--t-blue));border-radius:8px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.03)}

/* —— 面板 / 卡片 —— */
.card,.panel,.stat,.pcard,.q,.banner,.hero,.kv,.bar-item{
  background:var(--t-panel)!important;border:1px solid var(--t-line)!important;border-radius:14px!important;
  backdrop-filter:blur(10px);color:var(--t-text)!important;
  box-shadow:0 8px 30px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04)!important}
.card,.pcard,.stat{transition:border-color .25s,box-shadow .25s,transform .25s}
.card:hover,.pcard:hover,.stat:hover{border-color:var(--t-line2)!important;
  box-shadow:0 10px 34px rgba(0,0,0,.5),var(--t-glow)!important;transform:translateY(-2px)}

/* —— 文字层级 —— */
.sub,.meta,.k,.hint,.tip,.empty,.cmt,.dmeta,.desc,.lb{color:var(--t-mut)!important}
.brand,.page,.logo,.head .t,.stem,.welcome,.summary,.sub{letter-spacing:.3px}
.grad-text{background:linear-gradient(92deg,var(--t-cyan),var(--t-violet) 55%,var(--t-blue));
  -webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent}
.v,.score-big,.tscore,.kv .v,.bar-item .v{font-family:var(--t-mono);
  color:var(--t-cyan)!important;text-shadow:0 0 14px rgba(34,211,238,.32)}
.badge{font-family:var(--t-mono)}

/* —— 按钮 —— */
a{color:var(--t-cyan)}
.btn,.primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border-radius:10px!important;padding:10px 16px!important;cursor:pointer;font-weight:600;
  transition:filter .2s,box-shadow .2s,border-color .2s,transform .12s!important}
.btn{background:linear-gradient(135deg,rgba(34,211,238,.16),rgba(59,130,246,.16))!important;
  border:1px solid var(--t-line2)!important;color:var(--t-text)!important}
.btn:hover{border-color:var(--t-cyan)!important;box-shadow:var(--t-glow)!important}
.btn:active,.primary:active{transform:translateY(1px)}
.btn.primary,.primary{background:linear-gradient(135deg,var(--t-cyan),var(--t-blue))!important;
  border:none!important;color:#04121f!important;font-weight:800!important;
  box-shadow:0 6px 22px rgba(34,211,238,.35)!important}
.btn.primary:hover,.primary:hover{filter:brightness(1.08)}
.btn.plain{background:transparent!important;border:1px solid var(--t-line)!important}
.btn.plain:hover{color:var(--t-cyan)!important;border-color:var(--t-cyan)!important;box-shadow:none!important}
.btn.small,.btn.plain.small,.btn.primary.small{padding:6px 12px!important;font-size:13px}

/* —— 输入框 —— */
input,textarea,select,.finput{
  background:rgba(6,12,22,.85)!important;border:1px solid var(--t-line)!important;
  color:var(--t-text)!important;border-radius:10px!important;padding:10px 12px!important}
input:focus,textarea:focus,select:focus,.finput:focus{
  border-color:var(--t-cyan)!important;box-shadow:0 0 0 3px rgba(34,211,238,.15)!important;outline:none!important}
::placeholder{color:#5f7690!important}
.flabel{color:var(--t-mut)!important;font-size:13px}

/* —— 徽标 / 胶囊 —— */
.chip,.badge,.tag,.cat,.kind{
  background:rgba(56,189,248,.10)!important;border:1px solid var(--t-line)!important;
  color:var(--t-cyan)!important;border-radius:999px!important;font-weight:600}
.chip.pending{color:var(--t-warn)!important;border-color:rgba(251,191,36,.42)!important;background:rgba(251,191,36,.10)!important}
.chip.submitted,.chip.ok{color:var(--t-ok)!important;border-color:rgba(52,211,153,.42)!important;background:rgba(52,211,153,.10)!important}
.chip:hover{border-color:var(--t-cyan)!important;box-shadow:0 0 12px rgba(34,211,238,.22)}

/* —— 答题 / 批注 —— */
.ansline{border-left:3px solid var(--t-line2)!important;padding-left:12px!important}
.ansline.ok{border-color:var(--t-ok)!important;background:rgba(52,211,153,.08)!important}
.ansline.info{border-color:var(--t-cyan)!important;background:rgba(34,211,238,.07)!important}
.optrow:hover{background:rgba(56,189,248,.07)!important}
.opt{color:var(--t-text)!important}

/* —— 进度条 —— */
.bar-wrap{background:rgba(255,255,255,.06)!important;border-radius:999px;overflow:hidden}
.bar-fill{background:linear-gradient(90deg,var(--t-cyan),var(--t-blue))!important;box-shadow:var(--t-glow)}
.bar-fill.low{background:linear-gradient(90deg,var(--t-warn),var(--t-bad))!important}

/* —— 标签页 —— */
.view{opacity:.6;transition:opacity .2s}
.view.on{opacity:1;border-bottom:2px solid var(--t-cyan)!important}

/* —— 首页 / 门户 —— */
.logo-badge{background:linear-gradient(135deg,var(--t-cyan),var(--t-violet))!important;
  color:#04121f!important;border-radius:14px!important;box-shadow:var(--t-glow)!important;font-weight:800}
.wrap .card{max-width:420px}
.hint{font-size:13px}
.hero{border-color:var(--t-line2)!important}
.grid>*{transition:border-color .25s,box-shadow .25s,transform .25s}
.grid>*:hover{border-color:var(--t-line2)!important;box-shadow:var(--t-glow)!important;transform:translateY(-2px)}
.tag{border-radius:6px!important}

/* —— 对话页 —— */
.chips .chip{cursor:pointer}
.inputrow{background:linear-gradient(180deg,transparent,rgba(7,11,20,.92) 40%)!important;
  padding:14px 0 6px!important;position:sticky;bottom:0}
.dot{background:var(--t-cyan)!important;box-shadow:0 0 10px rgba(34,211,238,.6);animation:tpulse 1.1s infinite}
@keyframes tpulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
.thinking-note{font-family:var(--t-mono);font-size:12px;color:var(--t-mut)!important}

/* —— 图谱页 —— */
.head,.foot{background:var(--t-panel)!important;border:1px solid var(--t-line)!important;
  border-radius:12px!important;backdrop-filter:blur(10px)}
.kv{border-left:2px solid var(--t-line2)!important;padding-left:10px!important}
.kv .k{font-size:12px}

/* —— 表格 —— */
table{border-collapse:collapse}
th{color:var(--t-cyan)!important;font-family:var(--t-mono)}
td,th{border-color:var(--t-line)!important}

/* —— 提示条 —— */
.derr,.err{color:var(--t-bad)!important}
.tip{font-size:12px}
