/* 模块 E · 人格调音台。所有样式使用 pl- 前缀，避免影响其他模块。 */
body.persona-lab-active{--wh:760px}
.persona-lab-active .workspace,.persona-lab-active .side{height:var(--wh)}
.persona-lab-active .ws-nav .sub{display:none}
.pl-nav-tabs{margin-left:auto;display:flex;gap:5px;padding:3px;background:var(--bg-2);border-radius:8px}
.pl-nav-tab{border:0;background:transparent;color:var(--ink-soft);border-radius:6px;padding:5px 9px;font:10.5px var(--mono);cursor:pointer;transition:.15s}
.pl-nav-tab:hover,.pl-nav-tab:focus-visible{color:var(--accent);outline:none}
.pl-nav-tab.on{background:var(--paper);color:var(--accent);box-shadow:0 1px 4px rgba(2,22,45,.08)}
.pl-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:5px;box-shadow:0 0 0 3px rgba(58,52,255,.13);animation:plPulse 1.8s ease-in-out infinite}
@keyframes plPulse{50%{box-shadow:0 0 0 6px rgba(58,52,255,0)}}

.pl-lab{display:grid;gap:13px;padding-bottom:5px}
.pl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pl-kicker{font:10px var(--mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.pl-ghost{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:8px;padding:6px 9px;font:10.5px var(--mono);cursor:pointer;transition:.15s}
.pl-ghost:hover,.pl-ghost:focus-visible{border-color:var(--accent);color:var(--accent);outline:none;transform:translateY(-1px)}
.pl-archetypes{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.pl-archetype{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:9px;text-align:left;color:var(--ink);font-family:var(--sans);cursor:pointer;transition:.15s;min-width:0}
.pl-archetype:hover,.pl-archetype:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-1px)}
.pl-archetype.on{border-color:#D7D7DC;background:var(--accent-soft)}
.pl-archetype .icon{font-size:17px;display:block;margin-bottom:4px}.pl-archetype b{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-archetype small{display:block;font-size:9.5px;color:var(--ink-mute);margin-top:2px}

.pl-main{display:grid;grid-template-columns:minmax(220px,.76fr) minmax(0,1.24fr);gap:10px}
.pl-tuner,.pl-playground{border:1px solid var(--line);border-radius:11px;background:var(--paper);padding:12px}
.pl-panel-title{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-bottom:9px;margin-bottom:10px;border-bottom:1px dashed var(--line)}
.pl-panel-title b{font-family:var(--serif);font-size:14px}.pl-panel-title span{font:9px var(--mono);color:var(--ink-mute)}
.pl-controls{display:grid;gap:10px}
.pl-control-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:10.5px;color:var(--ink-soft)}
.pl-control-head output{font:600 10px var(--mono);color:var(--accent)}
.pl-range{display:block;width:100%;height:5px;appearance:none;border-radius:100px;background:linear-gradient(90deg,var(--accent) 0 var(--pl-value),var(--line-soft) var(--pl-value) 100%);outline:none;cursor:pointer}
.pl-range::-webkit-slider-thumb{appearance:none;width:15px;height:15px;border-radius:50%;background:var(--paper);border:4px solid var(--accent);box-shadow:0 1px 5px rgba(2,22,45,.16)}
.pl-range::-moz-range-thumb{width:8px;height:8px;border-radius:50%;background:var(--paper);border:4px solid var(--accent);box-shadow:0 1px 5px rgba(2,22,45,.16)}

.pl-challenge-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.pl-challenge-head b{font-size:11.5px}.pl-challenge-progress{font:9px var(--mono);color:var(--accent)}
.pl-challenges{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:8px}
.pl-challenge{position:relative;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:6px 7px;color:var(--ink-soft);font:10px var(--sans);cursor:pointer;text-align:left;transition:.15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-challenge:hover,.pl-challenge:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.pl-challenge.on{background:var(--accent-soft);border-color:#D7D7DC;color:var(--accent);font-weight:600}.pl-challenge.done::after{content:'✓';position:absolute;right:5px;top:3px;font:8px var(--mono);color:var(--green)}
.pl-dialogue{display:grid;gap:7px;min-height:112px}
.pl-user-bubble{justify-self:end;max-width:84%;background:var(--accent);color:#fff;border-radius:12px 4px 12px 12px;padding:7px 10px;font-size:11px;line-height:1.5}
.pl-ai-row{display:grid;grid-template-columns:23px 1fr;gap:7px;align-items:start}.pl-mini-av{width:23px;height:23px;border-radius:7px;overflow:hidden}.pl-ai-bubble{background:var(--bg-2);border-radius:4px 12px 12px 12px;padding:8px 10px;font-size:11.5px;line-height:1.58;color:var(--ink);min-height:46px}.pl-ai-bubble.thinking{color:var(--ink-mute);font-family:var(--mono);font-size:10px}
.pl-custom{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px}.pl-custom input{min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:7px 9px;color:var(--ink);font:10.5px var(--sans);outline:none}.pl-custom input:focus{border-color:var(--accent);background:var(--paper)}.pl-custom button{border:0;background:var(--ink);color:var(--paper);border-radius:8px;padding:0 10px;font:10px var(--mono);cursor:pointer}.pl-custom button:hover,.pl-custom button:focus-visible{background:var(--accent);outline:none}

.pl-diagnosis{background:var(--ink);color:var(--paper);border-radius:11px;padding:12px;display:grid;grid-template-columns:minmax(150px,.72fr) minmax(0,1.28fr);gap:14px;align-items:center}
.pl-diagnosis .pl-kicker{color:#8D89FF;margin-bottom:4px}.pl-identity h3{font-family:var(--serif);font-size:16px;line-height:1.3}.pl-identity p{font-size:10px;line-height:1.55;color:rgba(250,247,240,.65);margin-top:4px}.pl-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.pl-score-head{display:flex;justify-content:space-between;font:9px var(--mono);color:rgba(250,247,240,.72);margin-bottom:3px}.pl-score-head b{color:#8D89FF}.pl-score-track{height:4px;border-radius:100px;background:rgba(255,255,255,.12);overflow:hidden}.pl-score-track span{display:block;height:100%;background:var(--accent);border-radius:100px;transition:.25s}.pl-risk{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.1);padding-top:6px;font-size:9.5px;color:rgba(250,247,240,.7)}.pl-risk.warn{color:#ffd57b}
.pl-card-action{display:flex;justify-content:flex-end}.pl-generate{border:1px solid var(--line);background:var(--bg-2);color:var(--ink);border-radius:8px;padding:6px 10px;font:10px var(--mono);cursor:pointer}.pl-generate:hover,.pl-generate:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}
.pl-persona-card{display:none;border:1px solid #D7D7DC;background:linear-gradient(135deg,var(--accent-soft),var(--paper));border-radius:11px;padding:12px}.pl-persona-card.show{display:grid;grid-template-columns:1fr auto;gap:10px;animation:plCardIn .22s ease}.pl-persona-card h3{font-family:var(--serif);font-size:17px}.pl-persona-card p{font-size:10.5px;color:var(--ink-soft);margin-top:3px}.pl-card-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.pl-card-tags span{background:var(--paper);border:1px solid #D7D7DC;border-radius:100px;padding:3px 7px;font:9px var(--mono);color:var(--accent)}.pl-card-close{align-self:start;border:0;background:transparent;color:var(--ink-mute);cursor:pointer;font-size:16px}@keyframes plCardIn{from{opacity:0;transform:translateY(5px)}}

@media(max-width:900px){
  body.persona-lab-active{--wh:820px}
  .pl-main{grid-template-columns:1fr}.pl-controls{grid-template-columns:1fr 1fr}.pl-diagnosis{grid-template-columns:1fr}.pl-risk{grid-column:auto}
}
@media(max-width:620px){
  body.persona-lab-active{--wh:auto}.persona-lab-active .workspace,.persona-lab-active .side{height:auto}.persona-lab-active .workspace{height:auto!important;min-height:0;overflow:visible}.persona-lab-active .stage{flex:none;overflow:visible;padding:17px 15px}.persona-lab-active .stage-body{flex:none}.persona-lab-active .hero{margin-bottom:14px}
  .pl-nav-tabs{gap:2px}.pl-nav-tab{padding:5px 7px;font-size:9.5px}.pl-toolbar{align-items:flex-start}.pl-archetypes{grid-template-columns:1fr 1fr}.pl-archetype{padding:8px}.pl-main{grid-template-columns:1fr}.pl-controls{grid-template-columns:1fr}.pl-challenges{grid-template-columns:1fr 1fr}.pl-diagnosis{grid-template-columns:1fr}.pl-score-grid{grid-template-columns:1fr}.pl-persona-card.show{grid-template-columns:1fr}.pl-custom{grid-template-columns:1fr}.pl-custom button{padding:8px}
}
