:root{--primary: #0b65e3;--primary-soft: #e8f0fd;--text: #1f2329;--muted: #8a9099;--border: #e6e8eb;--bg: #f5f6f7;--danger: #d4380d;--radius: 8px;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}.app{min-height:100vh}.header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#fff;border-bottom:1px solid var(--border)}.tabs{display:flex;gap:16px}.tab{padding:12px 0;border:none;border-bottom:2px solid transparent;background:none;color:var(--muted)}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.user{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.badge{padding:1px 6px;border-radius:4px;background:#fff4e5;color:#b25e00}.main{padding:12px}.stack{display:flex;flex-direction:column;gap:12px}.state{padding:48px 16px;text-align:center;color:var(--muted)}.state-error{color:var(--danger)}.card{padding:12px;border-radius:var(--radius);background:#fff}.card-title{margin:0 0 10px;font-size:14px}.muted{margin:0;color:var(--muted);font-size:12px}.profile{display:flex;align-items:center;gap:12px}.avatar{width:44px;height:44px;border-radius:6px;object-fit:cover}.avatar-placeholder{display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:18px;font-weight:600}.profile-name{margin-bottom:4px;font-size:16px;font-weight:600}.profile-source{margin-left:4px;font-size:12px;font-weight:400}.profile-source.wechat{color:#07c160}.profile-source.corp{color:#e6a23c}.fields{display:grid;grid-template-columns:64px 1fr;gap:8px;margin:0}.fields dt{color:var(--muted)}.fields dd{margin:0;word-break:break-all}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text);font-size:12px}.chip.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.tag-group+.tag-group{margin-top:10px}.tag-group-name{margin-bottom:6px;color:var(--muted);font-size:12px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.btn{padding:6px 14px;border:1px solid var(--primary);border-radius:6px;background:var(--primary);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{margin-top:10px;background:#fff;color:var(--primary)}.actions .btn-ghost{margin-top:0}.btn-small{padding:2px 10px;font-size:12px}.search,.input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font:inherit;outline:none}.search:focus,.input:focus{border-color:var(--primary)}.textarea{resize:vertical;line-height:1.5}.card-head{display:flex;align-items:baseline;justify-content:space-between}.link{padding:0;border:none;background:none;color:var(--primary);font-size:13px}.form{display:flex;flex-direction:column;gap:12px}.form-item{display:flex;flex-direction:column;gap:6px}.form-label{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.form-label em{font-style:normal}.mobile-row{display:flex;gap:8px}.mobile-row .btn-ghost{flex-shrink:0;margin-top:0}.form-item .link{align-self:flex-start}.form .actions{margin-top:0}.script-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.script-title{font-weight:600}.script-content{margin:8px 0 0;line-height:1.6;white-space:pre-wrap}.news{display:flex;gap:10px;margin-top:8px;padding:8px;border-radius:6px;background:var(--bg)}.news img{width:48px;height:48px;border-radius:4px;object-fit:cover}.news-title{margin-bottom:4px}.members{margin:0;padding:0;list-style:none}.members li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.members li:last-child{border-bottom:none}.member-type{font-size:12px}.member-type.external{color:#07c160}.member-type.internal{color:var(--muted)}.toast{position:fixed;left:50%;bottom:48px;transform:translate(-50%);padding:8px 16px;border-radius:6px;background:#000000bf;color:#fff;font-size:13px}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}
