.x-portal,.x-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:14px;min-width:0}
.x-ph{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;font-weight:600;color:var(--head);margin-bottom:8px}
.x-as{font-size:.78rem;color:var(--muted);font-weight:400;display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}
.x-as select{max-width:100%;min-width:0}
.x-portal h4,.x-card h4{margin:14px 0 6px;color:var(--head);font-size:.95rem;overflow-wrap:anywhere}
.x-card h4:first-child{margin-top:0}
.x-portal h4 small,.x-card h4 small{color:var(--muted);font-weight:400;margin-left:6px;font-size:.78rem}
.x-key{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.x-key code{flex:1 1 200px;min-width:0;background:var(--bg2);border:1px dashed var(--line);border-radius:8px;padding:8px 10px;font-size:.82rem;color:var(--head);overflow-wrap:anywhere;letter-spacing:.03em}
.x-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;align-items:center;min-width:0}
.x-row input,.x-row select{flex:1 1 140px;min-width:0}
.x-row input,.x-row select,.x-f input,.x-f textarea,.x-f select,.x-as select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg2);color:var(--text);font:inherit;font-size:.85rem;max-width:100%;box-sizing:border-box}
.x-f{display:grid;gap:8px}
.x-f label{display:grid;gap:3px;font-size:.78rem;color:var(--muted)}
.x-f textarea{resize:vertical;width:100%}
.x-warn{color:var(--o);font-weight:600;font-size:.85rem;margin:6px 0}
.x-list{list-style:none;padding:0;margin:6px 0;display:grid;gap:6px}
.x-list li{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:7px 10px;background:var(--bg2);border-radius:8px;font-size:.84rem;color:var(--text);overflow-wrap:anywhere;min-width:0}
.x-list li>span{min-width:0;flex:1 1 180px}
.x-list li .btn{padding:5px 10px;font-size:.78rem}
.x-list li .x-row{flex:1 1 100%;margin:4px 0 0}
.x-tw{overflow-x:auto;margin-bottom:12px}
.x-tbl{width:100%;border-collapse:collapse;font-size:.8rem;color:var(--text)}
.x-tbl th,.x-tbl td{padding:6px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere}
.x-tbl th{color:var(--muted);font-weight:500}
.x-tbl tr.x-sel td{background:var(--bg2);font-weight:600}
.x-chip{display:inline-block;padding:1px 8px;border-radius:99px;font-size:.7rem;font-weight:600;background:var(--bg2);color:var(--muted);border:1px solid var(--line);white-space:nowrap}
.x-chip.x-bad{color:var(--o);border-color:var(--o)}
.x-chip.x-ok{color:var(--head)}
.x-sms{background:var(--bg2);border-radius:14px;padding:10px;font-size:.8rem;max-width:320px;margin:10px 0}
.x-sms p{background:var(--card);color:var(--text);border-radius:12px 12px 12px 4px;padding:8px 10px;margin:6px 0 0;overflow-wrap:anywhere}
.x-pv{border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:10px;background:var(--bg2)}
.x-pv p{margin:4px 0;overflow-wrap:anywhere}
.x-pvh{display:flex;justify-content:space-between;gap:8px;color:var(--head)}
.x-build{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--card)}
.x-build b{color:var(--head)}
.x-build.x-lock{opacity:.55}
.x-build ul{margin:4px 0 0 16px;padding:0;font-size:.78rem;color:var(--muted)}
.x-dlb{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right}
.x-sum{font-family:monospace;font-size:.7rem;color:var(--muted);overflow-wrap:anywhere;margin-top:4px}
.x-banner{background:var(--bg2);border-left:4px solid var(--o);padding:8px 10px;border-radius:8px;font-size:.82rem;margin-bottom:10px;color:var(--text);overflow-wrap:anywhere}
.x-tks{margin-bottom:12px}
.x-tkb{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;color:var(--text);font:inherit;cursor:pointer}
.x-tkb.x-on{border-color:var(--o);box-shadow:0 0 0 1px var(--o)}
.x-tkb.x-done{opacity:.55}
.x-tkb b{display:block;font-size:.85rem;color:var(--head);overflow-wrap:anywhere}
.x-tkb small{color:var(--muted);font-size:.74rem}
.x-side{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.x-side span{font-size:.74rem;padding:3px 8px;border-radius:99px;background:var(--bg2);color:var(--text);border:1px solid var(--line)}
.x-side span.x-bad{color:var(--o);border-color:var(--o)}
.x-thread p{background:var(--bg2);color:var(--text);padding:8px 10px;border-radius:10px;font-size:.84rem;margin:6px 0;overflow-wrap:anywhere}
.x-thread p.x-me{border-left:3px solid var(--o)}
@media (max-width:560px){.x-build{grid-template-columns:minmax(0,1fr)}.x-dlb{align-items:flex-start;text-align:left}.x-row .btn{flex:1 1 auto}}
