.contact-dialog { width:min(720px,calc(100vw - 32px)); max-width:720px; box-sizing:border-box; }
#dm-form[hidden],#dm-unread[hidden],#tab-admin [data-admin-only][hidden],#staff-tickets[hidden] { display:none!important; }
.contact-dialog h2,.contact-dialog h3,.support-card h3 { overflow-wrap:anywhere; line-height:1.4; }
.contact-dialog label,.contact-form label,.ticket-reply label,.support-card form label { display:flex; flex-direction:column; gap:8px; font-size:12px; min-width:0; margin:14px 0; }
.contact-dialog textarea,.contact-form textarea { resize:vertical; min-height:80px; }
.contact-form input,.contact-form textarea,.contact-form .tay-select,.contact-dialog textarea,.ticket-reply textarea { width:100%; max-width:100%; box-sizing:border-box; }
#dm-form > label { flex-basis:100%; font-size:12px; }
.contact-menu summary::-webkit-details-marker { display:none; }
.contact-dialog form button { margin:12px 0; }
.contact-menu { border:1px solid var(--border-subtle); border-radius:12px; padding:9px 12px; min-width:120px; }
.contact-menu summary { cursor:pointer; font-size:12px; list-style:none; }
.contact-menu > button { display:block; margin-top:8px; width:100%; }
.contact-results { display:grid; gap:8px; max-height:48vh; overflow:auto; padding:4px; }
.contact-results button { text-align:left; justify-content:flex-start; }
.dm-layout { display:grid; grid-template-columns:minmax(190px,270px) minmax(0,1fr); gap:20px; min-width:0; }
.dm-sidebar,.dm-conversation { min-width:0; padding:20px; background:var(--bg-card); border:1px solid var(--border-subtle); border-radius:20px; }
.dm-sidebar h2 { font-size:16px; margin-bottom:18px; }
#dm-threads { display:grid; gap:8px; max-height:48vh; overflow:auto; padding:3px; }
.dm-thread { display:grid; gap:7px; width:100%; min-width:0; text-align:left; background:var(--bg-input); color:var(--text-primary); border:1px solid var(--border-subtle); padding:14px; }
.dm-thread strong,.dm-thread span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dm-thread small { color:var(--text-dim); }
.dm-thread.selected { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,var(--bg-card)); }
.contact-blocks { margin-top:22px; font-size:12px; }
.contact-blocks summary { cursor:pointer; padding:10px 0; }
#dm-blocks { display:grid; gap:10px; }
#dm-blocks button { white-space:normal; }
#dm-heading { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-bottom:18px; }
#dm-heading h2 { font-size:20px; overflow-wrap:anywhere; min-width:0; }
#dm-heading p { color:var(--text-dim); line-height:1.6; }
.contact-messages { display:flex; flex-direction:column; gap:12px; min-height:140px; max-height:48vh; overflow:auto; padding:8px 5px; scroll-padding:10px; }
.contact-message { max-width:88%; align-self:flex-start; padding:14px; border:1px solid var(--border-subtle); border-radius:15px 15px 15px 4px; background:var(--bg-input); min-width:0; }
.contact-message.own { align-self:flex-end; border-radius:15px 15px 4px 15px; background:color-mix(in srgb,var(--accent) 12%,var(--bg-card)); }
.contact-message header { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; }
.contact-message strong { font-size:12px; overflow-wrap:anywhere; }
.contact-message time { font-size:10px; color:var(--text-dim); }
.contact-message p { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; font-size:13px; margin-top:9px; user-select:text; }
.message-report { margin-top:10px; padding:3px 0; font-size:10px; color:var(--text-dim); background:none; border:none; }
#dm-form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; margin-top:18px; }
#dm-form textarea { flex:1 1 220px; min-width:0; resize:vertical; }
#dm-form button { width:auto; flex:0 0 auto; margin:0; }
#dm-feedback,#ticket-create-feedback,#report-feedback,#ticket-feedback { color:var(--accent); line-height:1.5; font-size:12px; margin-top:12px; overflow-wrap:anywhere; }
.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; width:100%; min-width:0; }
.contact-form .full { grid-column:1/-1; }
.contact-form > button { width:auto; justify-self:start; margin:12px 0; }
.support-list { display:grid; gap:14px; margin-top:16px; min-width:0; }
.support-card { min-width:0; border:1px solid var(--border-subtle); border-radius:16px; background:var(--bg-card); padding:18px; }
.support-card h3 { font-size:15px; }
.support-card p { margin:12px 0; font-size:12px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }
.support-card blockquote { padding:14px; border-left:3px solid var(--accent); background:var(--bg-input); margin:16px 0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; white-space:pre-wrap; }
.support-card .feature-heading { margin-bottom:12px; }
.support-card .feature-tag { font-size:10px; flex-shrink:0; }
.ticket-messages { max-height:40vh; }
#support-app > .feature-heading { margin-top:28px; }
#support-app > .feature-card { display:block; }
#support-app > .feature-card > p { margin:14px 0; }
.channel-private-toggle { display:flex!important; flex-direction:row!important; align-items:center; gap:12px; padding:16px; background:var(--bg-input); border-radius:12px; }
.channel-private-toggle input { width:18px!important; height:18px; accent-color:var(--accent); flex:none; margin:0!important; }
.private-room { border-style:dashed!important; }
.private-room .social-room-controls > small { color:var(--accent); }
.channel-access-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 0; border-bottom:1px solid var(--border-subtle); }
.channel-access-row span { min-width:0; overflow-wrap:anywhere; }
#channel-access-list { margin:16px 0; font-size:12px; }
#channel-delete-own { color:var(--danger); margin:16px 0; }
.spotify-free > p { line-height:1.65; color:var(--text-dim); margin:12px 0; }
.spotify-saved-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); gap:14px; margin:20px 0; font-size:12px; }
.spotify-saved-card { border:1px solid var(--border-subtle); border-radius:16px; padding:18px; min-width:0; }
.spotify-saved-card strong { display:block; overflow-wrap:anywhere; font-size:14px; }
.spotify-saved-card small { display:block; margin:8px 0 14px; color:var(--text-dim); }
#spotify-embed iframe { width:100%; height:352px; border:0; border-radius:16px; display:block; margin-bottom:12px; }
#spotify-advanced { margin-top:24px; }
@media(max-width:1100px) { .dm-layout { grid-template-columns:1fr; } #dm-threads { max-height:200px; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); } }
@media(max-width:600px) { .dm-sidebar,.dm-conversation { padding:14px; } .contact-form { grid-template-columns:1fr; } .contact-message { max-width:96%; } .support-card { padding:14px; } .contact-dialog { padding:18px; } .channel-access-row { flex-wrap:wrap; } }
