/* Shared contact module: selectors stay local to contact controls. */
.site-contact{color:var(--ink,#e8eef4);font-family:var(--sans,system-ui,sans-serif);line-height:1.7}
.site-contact-inline{margin-top:36px;padding-top:28px;border-top:1px solid var(--line,rgba(255,255,255,.12))}
.site-contact .site-contact-title{font-size:clamp(22px,3vw,28px);font-weight:400;line-height:1.45;margin:0;color:var(--ink,#e8eef4)}
.site-contact-intro{margin:12px 0 20px;font-size:14px;line-height:1.9;color:var(--ink-2,#a9b6c4)}
.site-contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.site-contact .site-contact-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 16px;border:1px solid var(--card-border,rgba(255,255,255,.15));border-radius:6px;color:var(--ink,#e8eef4);background:transparent;font:inherit;font-size:13px;line-height:1.6;text-align:center;text-decoration:none;cursor:pointer}
.site-contact .site-contact-button:hover{border-color:var(--accent,#46c7b8);color:var(--accent,#46c7b8)}
.site-contact .site-contact-primary{background:var(--accent-soft,rgba(70,199,184,.14));border-color:var(--accent,#46c7b8);color:var(--accent,#46c7b8)}
.site-contact-email{margin:10px 0 0;font-size:13px;color:var(--ink-2,#a9b6c4);overflow-wrap:anywhere}
.site-contact-wechat{margin-top:20px;border-top:1px solid var(--line,rgba(255,255,255,.12));border-bottom:1px solid var(--line,rgba(255,255,255,.12))}
.site-contact-wechat>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:10px 0;font-size:14px;list-style:none;cursor:pointer}
.site-contact-wechat>summary::-webkit-details-marker{display:none}
.site-contact-wechat>summary>span{font-size:20px;color:var(--accent,#46c7b8)}
.site-contact-wechat[open]>summary>span{transform:rotate(45deg)}
.site-contact-qr-content{display:grid;justify-items:start;gap:14px;padding:8px 0 22px}
.site-contact-qr{display:block;width:260px;max-width:100%;height:auto;object-fit:contain;background:#fff;border-radius:4px}
.site-contact-note{margin:0;max-width:440px;font-size:12px;line-height:1.8;color:var(--ink-2,#a9b6c4)}
.site-contact-feedback{font-size:12px;line-height:1.8;color:var(--accent,#46c7b8);overflow-wrap:anywhere}
.site-contact-feedback:empty{display:none}
.site-contact-feedback:not(:empty){margin-top:12px}
.site-contact-copy-helper{position:fixed;left:0;top:0;opacity:0;width:1px;height:1px;padding:0;pointer-events:none}
.site-contact-copy-fallback{display:block;width:100%;min-height:64px;margin-top:8px;padding:10px;border:1px solid var(--card-border,rgba(255,255,255,.15));border-radius:4px;background:var(--bg-2,#0d1320);color:var(--ink,#e8eef4);font:inherit;font-size:14px;resize:vertical;user-select:text;-webkit-user-select:text}
.site-contact-dialog{position:fixed;inset:0;width:min(520px,calc(100vw - 32px));max-width:520px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--card-border,rgba(255,255,255,.15));border-radius:12px;background:var(--bg,#0a0f17);box-shadow:0 24px 80px rgba(0,0,0,.3);overflow:auto;overscroll-behavior:contain}
.site-contact-dialog::backdrop{background:rgba(0,0,0,.64)}
.site-contact-dialog-content{padding:28px}
.site-contact-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.site-contact-heading .site-contact-title:focus{outline:none}
.site-contact-close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;margin:-6px -8px 0 0;padding:0;border:0;background:transparent;color:var(--ink-2,#a9b6c4);font:inherit;font-size:28px;line-height:1;cursor:pointer}
.site-contact-close:hover{color:var(--accent,#46c7b8)}
.site-contact-project{margin:10px 0 0;font-size:13px;color:var(--accent,#46c7b8)}
.site-contact :where(a,button,summary,textarea):focus-visible,.site-contact-copy-fallback:focus-visible{outline:2px solid var(--accent,#46c7b8);outline-offset:4px}
@media(max-width:440px){.site-contact-dialog-content{padding:22px}.site-contact-actions{gap:8px}.site-contact .site-contact-button{padding:10px 13px}.site-contact-qr{width:240px}}
