:root{
  --bg:#f9f9ff;--on:#151c27;--muted:#4c4546;--line:rgba(207,196,197,.55);
  --green:#006e2f;--soft:#e7eefe;--paper:#fff;--shadow:0 10px 40px rgba(21,28,39,.12);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--on);font-family:"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif}
.pf{max-width:960px;margin:0 auto;padding:28px 24px 80px}
.pf-hero{margin-bottom:22px}
.pf-hero h1{margin:0 0 8px;font-size:clamp(22px,3.2vw,32px);font-weight:800;letter-spacing:-.03em}
.pf-lead{margin:0;max-width:36rem;color:var(--muted);font-size:14px;line-height:1.65}
.pf-err{color:#ba1a1a;text-align:center;margin:0 0 16px}

.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.card label,.modal label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.card input,.asset-toolbar input{
  height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;color:var(--on);background:#fff
}
.modal input{
  height:44px;border:0;border-radius:10px;padding:0 12px;font:inherit;color:var(--on);background:#f3f4f6
}
.modal input:focus{outline:2px solid rgba(0,110,47,.28);background:#fff}
.card input:disabled{background:#f4f6fb;color:var(--muted)}
.cta{height:40px;padding:0 18px;border-radius:999px;border:1px solid rgba(126,117,118,.55);background:#fff;font:inherit;font-weight:700;cursor:pointer;color:var(--on)}
.cta:hover{border-color:var(--green);color:var(--green)}
.cta.solid{background:var(--green);color:#fff;border-color:var(--green)}
.cta.solid:hover{background:#005321;color:#fff}
.cta:disabled{opacity:.55;cursor:wait}
.hint{min-height:18px;margin:0;font-size:13px;color:var(--muted)}
.hint.ok{color:var(--green)}
.hint.bad{color:#ba1a1a}

.profile-card{display:flex;gap:22px;align-items:flex-start}
.avatar-col{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto}
.avatar-col .cta{height:32px;padding:0 12px;font-size:12px}
.profile-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.avatar-pick{position:relative;width:88px;height:88px;flex:0 0 88px;border-radius:99px;overflow:hidden;border:1px solid var(--line);background:var(--soft);cursor:pointer;display:flex;align-items:center;justify-content:center}
.avatar-pick .av{font-size:32px;font-weight:700}
.avatar-pick img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.avatar-pick em{position:absolute;left:0;right:0;bottom:0;background:rgba(21,28,39,.55);color:#fff;font-size:11px;font-style:normal;text-align:center;padding:4px 0}

.pf-assets{margin-top:36px}
.pf-assets-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.pf-assets-h h2{margin:0 0 6px;font-size:20px;font-weight:800}
.pf-assets-h p{margin:0;color:var(--muted);font-size:13px;max-width:28rem}
.scope-seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px;flex:0 0 auto}
.scope-seg button{
  border:0;background:transparent;padding:7px 14px;border-radius:999px;
  font:inherit;font-size:13px;font-weight:700;cursor:pointer;color:var(--muted)
}
.scope-seg button:hover{color:var(--green)}
.scope-seg button.on{background:var(--green);color:#fff}
.scope-seg button.on:hover{color:#fff}
.scope-seg span{font-weight:650;opacity:.85}

.asset-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.asset-switch button{
  text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:14px;
  padding:16px 18px;cursor:pointer;font:inherit;color:var(--on)
}
.asset-switch button:hover{border-color:#c6e7d4}
.asset-switch button.on{border-color:var(--green);background:#f3faf6;box-shadow:inset 0 0 0 1px var(--green)}
.asset-switch strong{display:block;font-size:26px;font-weight:800;letter-spacing:-.04em;line-height:1.1}
.asset-switch span{display:block;margin-top:4px;font-size:14px;font-weight:700}
.asset-switch em{display:block;margin-top:2px;font-size:12px;font-style:normal;color:var(--muted)}

.asset-toolbar{margin:4px 0 12px}
.asset-toolbar input{width:100%;max-width:360px}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.cat-chips button{
  border:1px solid transparent;background:#e8f5ec;border-radius:999px;padding:6px 13px;
  font:inherit;font-size:12px;font-weight:650;color:var(--green);cursor:pointer
}
.cat-chips button:hover{background:#d4eedc}
.cat-chips button.on{background:var(--green);color:#fff}

.kb-group{margin:0 0 22px}
.kb-group h3{
  margin:0 0 10px;font-size:13px;font-weight:800;color:var(--green);
  display:flex;align-items:baseline;gap:8px
}
.kb-group h3 i{font-style:normal;font-weight:600;color:var(--muted);font-size:12px}
.kb-row{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 8px}
.kb-row h4{margin:0 0 6px;font-size:15px;font-weight:750}
.kb-row p{margin:0;font-size:13px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.kb-meta{margin-top:8px;font-size:11px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tag{display:inline-block;padding:1px 7px;border-radius:999px;background:var(--soft);color:var(--on);font-weight:700}

.asset-empty{padding:40px 16px;text-align:center;color:var(--muted);font-size:14px;background:var(--paper);border:1px dashed var(--line);border-radius:14px}

.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.iden{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px;
  display:flex;gap:12px;align-items:flex-start;min-width:0
}
.iden .av{position:relative;flex:0 0 44px;width:44px;height:44px;border-radius:99px;overflow:hidden;background:var(--soft);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}
.iden .av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.iden b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iden .sub{font-size:12px;color:var(--muted);line-height:1.5;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.modal-mask{position:fixed;inset:0;z-index:2147483600;background:rgba(21,28,39,.38);display:flex;align-items:center;justify-content:center;padding:20px}
.modal-mask[hidden]{display:none}
.modal{
  width:min(400px,100%);background:#fff;border-radius:20px;padding:28px 24px 22px;
  box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column;gap:12px;color:var(--on)
}
.modal-brand{font-size:13px;font-weight:800;color:var(--green);letter-spacing:.02em}
.modal h2{margin:0;font-size:26px;font-weight:800;letter-spacing:-.03em}
.modal-lead{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.modal-x{
  position:absolute;top:12px;right:12px;width:32px;height:32px;border:0;border-radius:8px;
  background:transparent;font-size:22px;cursor:pointer;color:#64748b;line-height:1
}
.modal-x:hover{background:#f4f6f9}
.modal .cta{width:100%;margin-top:8px;height:46px}
.modal-wide{width:min(520px,100%)}
.ai-av-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ai-av-cell{
  position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;
  border:2px solid var(--line);background:#eef1f6;cursor:pointer;padding:0
}
.ai-av-cell img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ai-av-cell.on{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.ai-av-cell.wait{cursor:wait}
.ai-av-cell:disabled{cursor:default}

@media(max-width:640px){
  .profile-card{flex-direction:column;align-items:center;text-align:left}
  .profile-fields{width:100%}
  .asset-switch{grid-template-columns:1fr}
}
