.portal-support { position:fixed; z-index:45; right:22px; bottom:22px; width:50px; height:50px; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Segoe UI",sans-serif; }
.portal-support-trigger { position:relative; display:inline-flex; align-items:center; justify-content:center; width:50px; min-height:50px; padding:0; overflow:visible; border:2px solid rgba(255,255,255,.96); border-radius:15px; background:linear-gradient(145deg,#27b76c,#118a50); color:#fff; box-shadow:0 12px 30px rgba(17,138,80,.23),0 2px 8px rgba(23,58,55,.13),inset 0 1px 0 rgba(255,255,255,.28); cursor:grab; touch-action:none; transition:transform .2s ease,filter .2s ease,box-shadow .2s ease; }
.portal-support-trigger:hover { transform:translateY(-2px); filter:saturate(1.06); box-shadow:0 16px 36px rgba(17,138,80,.28),0 3px 10px rgba(23,58,55,.14),inset 0 1px 0 rgba(255,255,255,.3); }
.portal-support-trigger:active { transform:translateY(0) scale(.97); }
.portal-support.is-dragging .portal-support-trigger { cursor:grabbing; transform:scale(.98); box-shadow:0 7px 18px rgba(23,58,55,.2); }
.portal-support-trigger:focus-visible { outline:3px solid rgba(229,83,61,.32); outline-offset:3px; }
.portal-support-trigger svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 1px 1px rgba(7,75,42,.18)); }
.portal-support-trigger-dot { position:absolute; top:-7px; right:3px; display:grid; place-items:center; min-width:19px; height:19px; padding:0 4px; border:2px solid #fff; border-radius:10px; background:#f04b43; color:#fff; font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace; box-shadow:0 3px 8px rgba(186,42,36,.3); }
.portal-support-panel { position:absolute; right:0; bottom:56px; width:min(330px,calc(100vw - 28px)); overflow:hidden; border:1px solid rgba(23,58,55,.13); border-radius:11px; background:#fff; color:#20302e; box-shadow:0 20px 52px rgba(23,58,55,.2); transform-origin:bottom right; }
.portal-support-panel.opens-right { right:auto; left:0; transform-origin:bottom left; }
.portal-support-panel.opens-down { top:56px; bottom:auto; transform-origin:top right; }
.portal-support-panel.opens-right.opens-down { transform-origin:top left; }
.portal-support-panel[hidden] { display:none; }
.portal-support-panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:16px 16px 13px; border-bottom:1px solid #d8e2df; background:linear-gradient(145deg,#f7fbf9,#eef6f3); }
.portal-support-panel-kicker { display:block; margin-bottom:2px; color:#16866f; font-size:10px; font-weight:750; letter-spacing:.08em; }
.portal-support-panel-title { margin:0; color:#173a37; font-size:16px; font-weight:750; line-height:1.35; }
.portal-support-panel-copy { margin:4px 0 0; color:#71817e; font-size:11px; line-height:1.45; }
.portal-support-close { display:inline-flex; align-items:center; justify-content:center; flex:none; width:28px; min-height:28px; padding:0; border:1px solid #d8e2df; border-radius:7px; background:rgba(255,255,255,.72); color:#71817e; font-size:18px; line-height:1; cursor:pointer; }
.portal-support-close:hover { background:#fff; color:#173a37; }
.portal-support-list { display:grid; gap:7px; padding:10px; }
.portal-support-contact { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 10px; border-radius:7px; color:#20302e; text-decoration:none; transition:background .18s ease,transform .18s ease; }
.portal-support-contact:hover { background:#e9f4f1; transform:translateX(2px); }
.portal-support-contact:focus-visible { outline:2px solid rgba(22,134,111,.3); outline-offset:1px; }
.portal-support-contact-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:#173a37; color:#fff; }
.portal-support-contact-icon svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.portal-support-contact-copy { min-width:0; }
.portal-support-contact-copy strong,.portal-support-contact-copy span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-support-contact-copy strong { font-size:12px; }
.portal-support-contact-copy span { margin-top:1px; color:#71817e; font:10.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; }
.portal-support-contact-action { color:#16866f; font-size:10px; font-weight:700; white-space:nowrap; }
.portal-support-empty { padding:18px 16px 20px; text-align:center; color:#71817e; font-size:11px; }
.portal-support-empty strong { display:block; margin-bottom:3px; color:#20302e; font-size:12px; }
.portal-support[data-edge="right"] .portal-support-trigger { border-radius:15px; }
@media (max-width:800px) {
  .portal-support { right:12px; bottom:12px; }
  .portal-support-panel { width:min(330px,calc(100vw - 24px)); }
}
