.contact-open,.contact-open body{overflow:hidden}.contact-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:16px;border:0;background:transparent;color:var(--text-primary);display:flex;align-items:center;justify-content:center;overflow-y:auto;overscroll-behavior:contain}.contact-dialog:not([open]){display:none}.contact-dialog::-webkit-backdrop{background:var(--bg-overlay-dark)}.contact-dialog::backdrop{background:var(--bg-overlay-dark)}.contact-sheet{width:100%;max-width:480px;margin:auto;padding:20px;background:var(--surface-1);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.45);animation:contact-in .16s ease-out}@keyframes contact-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.contact-sheet{animation:none}}@media (max-width:600px){.contact-dialog{align-items:flex-end;padding:0}.contact-sheet{margin:auto 0 0;max-width:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}}.contact-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.contact-title{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-heading)}.contact-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);cursor:pointer}.contact-close:hover{background:var(--surface-2);color:var(--text-primary)}.contact-close:focus-visible,.contact-input:focus-visible,.contact-link-button:focus-visible,.contact-sent:focus-visible{outline:2px solid var(--focus-border);outline-offset:2px}.contact-form{display:flex;flex-direction:column;gap:6px}.contact-intro{margin:0 0 8px;color:var(--text-secondary);line-height:1.5}.contact-label{margin-top:6px;font-size:.9rem;font-weight:600;color:var(--text-primary)}.contact-input{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--input-border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text-primary);font:inherit;font-size:16px}.contact-input:focus{background:var(--input-bg-focus);border-color:var(--focus-border)}.contact-textarea{min-height:120px;resize:vertical;line-height:1.5}.contact-input[aria-invalid=true]{border-color:var(--color-red-500)}.contact-counter,.contact-hint{margin:0;font-size:.8rem;color:var(--text-muted)}.contact-counter{text-align:end}.contact-counter--near{color:var(--color-amber-500)}.contact-error{margin:6px 0 0;padding:10px 12px;border:1px solid var(--border-error);border-radius:var(--radius-sm);background:var(--bg-error);color:var(--text-primary);font-size:.9rem}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}.contact-actions .standard-button{flex:1 1 auto}.contact-link-button{min-height:44px;padding:0 8px;border:0;background:none;color:var(--accent-text);font:inherit;font-weight:600;cursor:pointer}.contact-alt,.contact-privacy{margin:10px 0 0;font-size:.85rem;color:var(--text-secondary)}.contact-alt{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.contact-privacy{margin-top:4px;color:var(--text-muted)}.contact-alt a,.contact-privacy a{color:var(--accent-text)}.contact-hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.contact-sent{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:12px 0 4px}.contact-sent-icon{color:var(--color-green-500)}.contact-sent-title{margin:4px 0 0;font-size:1.05rem;font-weight:700;color:var(--text-heading)}.contact-sent-body{margin:0;color:var(--text-secondary)}.contact-sent .contact-actions{justify-content:center;width:100%}.contact-sent .contact-alt{justify-content:center}.contact-page{max-width:560px;margin:0 auto;padding:24px 16px 48px}.contact-page-title{margin:0 0 8px;font-size:1.6rem;font-weight:700;color:var(--text-heading)}.admin-page .admin-message-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-primary);line-height:1.5}.admin-page .admin-message-meta{margin:0;font-size:.88rem;color:var(--text-secondary);overflow-wrap:anywhere}.admin-page .admin-message-meta a{color:var(--accent-text)}.admin-page .admin-message--done{opacity:.7}