.file-dropzone{display:grid;gap:.65rem;padding:1rem;border:2px dashed var(--border,#9dbbc9);border-radius:var(--radius,16px);background:var(--surface-soft,#f1f7fa);min-width:0;transition:background .15s,border-color .15s,box-shadow .15s}
.file-dropzone-hint{font-size:.95rem;font-weight:600;color:var(--text,#132b3a)}
.file-dropzone input[type=file]{max-width:100%;width:100%;font-size:.9rem}
.file-dropzone:focus-within,.file-dropzone.is-dragging{border-color:var(--accent,#087aab);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#087aab) 22%,transparent)}
.file-dropzone.is-dragging{background:color-mix(in srgb,var(--accent,#087aab) 13%,var(--surface,#fff))}
.file-picker .file-dropzone{width:100%}

/* Uses the same theme tokens and personal radius settings as the rest of the portal. */
.file-dropzone{border-color:color-mix(in srgb,var(--primary) 50%,var(--border));border-radius:var(--radius-md);background:linear-gradient(115deg,var(--surface-soft),var(--surface));color:var(--text)}
.file-dropzone:focus-within,.file-dropzone.is-dragging{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}
.file-dropzone.is-dragging{background:var(--primary-soft)}
.file-dropzone:has(input:disabled),.file-dropzone:disabled{opacity:.65;cursor:not-allowed}
button.file-dropzone{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:88px;white-space:normal}
button.file-dropzone strong{color:var(--text)}
.file-dropzone input::file-selector-button{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .8rem;margin-right:.7rem;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}
.activity-dialog{width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.activity-dialog::backdrop{background:rgba(4,20,33,.65)}
.activity-dialog .panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.activity-dialog .panel-heading h2{font-size:1.35rem;margin:0;overflow-wrap:anywhere}
.activity-dialog .panel-heading button{flex-shrink:0}
.activity-dialog .form-stack,.club-choice-card{min-width:0}
.activity-dialog label:has(input[type=checkbox]),.club-term-panel label:has(input[type=checkbox]){display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:.65rem}
.activity-dialog input[type=checkbox],.club-term-panel input[type=checkbox]{width:1.15rem;height:1.15rem;flex:0 0 auto}
.role-preview-bar{position:sticky;top:0;z-index:110;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--amber-soft);border-bottom:2px solid var(--amber);color:var(--text)}
.role-preview-bar[hidden]{display:none}
.role-preview-bar .button{flex-shrink:0}
.management-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.management-links a{justify-content:flex-start;min-height:60px;background:var(--surface-soft);border:1px solid var(--border)}
.admin-section .form-actions,.resource-card-actions,.schedule-admin-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.admin-section .form-actions{position:static;padding-top:14px;border-top:1px solid var(--border)}
.admin-section .form-actions .button,.resource-card-actions .button{min-height:42px;white-space:normal;opacity:1}
.admin-section .button-quiet{background:var(--surface-soft);border:1px solid var(--border);color:var(--text)}
.admin-section .button-quiet:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--text)}
.admin-section .button:focus-visible,.activity-dialog .button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.admin-section fieldset{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}
.admin-section .choice-row label,.announcement-user-choices label{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.admin-section .choice-row input[type=checkbox],.announcement-user-choices input[type=checkbox]{flex:0 0 auto;width:18px;height:18px}
.admin-section [hidden],.activity-dialog [hidden],.club-choice-card [hidden],.announcement-user-choices [hidden]{display:none!important}
.club-contact-title{font-size:1.1rem;font-weight:650;color:var(--primary)}
.club-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));align-items:start;gap:18px;margin-top:20px}
.club-choice-card h3{margin:6px 0 12px;font-size:1.3rem;overflow-wrap:anywhere}
.club-contact-line{overflow-wrap:anywhere;line-height:1.6}
.club-schedule-lines p{padding:10px 0;margin:0;border-bottom:1px solid var(--border);font-size:.92rem}
.club-schedule-lines p:last-child{border-bottom:0}
.club-choice-card .form-actions{margin-top:18px}
.club-roster-list,.schedule-admin-list,.announcement-admin-list{display:grid;gap:14px;margin-top:20px}
.club-roster-content{overflow-x:auto;padding-top:16px}
.club-roster-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:.95rem}
.club-roster-table th,.club-roster-table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.club-roster-table th{background:var(--surface-soft);color:var(--muted);font-weight:600}
.club-roster-table td:nth-child(2){min-width:200px}
.schedule-admin-row{padding:14px 0;border-bottom:1px solid var(--border)}
.schedule-admin-row:last-child{border-bottom:0}
.schedule-admin-row p{flex:1 1 300px;margin:0;line-height:1.55}
.home-announcements{margin-bottom:26px}
.home-announcements>div,.home-announcements>details>div{display:grid;gap:16px}
.home-announcements>details{margin-top:14px}
.announcement-card{border-left:4px solid var(--primary);background:linear-gradient(115deg,var(--surface),var(--surface-soft))}
.announcement-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin:12px 0}
.announcement-card h3{font-size:1.25rem;margin:0}
.announcement-card>.button{margin-top:16px}
.announcement-files{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0}
.announcement-file{display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow-wrap:anywhere;font-size:.9rem}
.announcement-file img{display:block;width:100%;max-height:250px;object-fit:contain;border-radius:var(--radius-sm);background:var(--surface-soft)}
.announcement-recipient-select{display:grid;gap:12px}
.announcement-user-choices{display:grid;gap:7px;max-height:360px;overflow:auto;margin-top:12px;padding-right:6px}
.announcement-recipient-select>details>summary{min-height:44px}
.event-photo-evidence{grid-column:1/-1;background:var(--surface-soft);border-color:var(--border)}
.event-photo-evidence .attachment-preview,.event-photo-evidence img{height:auto;max-height:340px;width:100%;object-fit:contain}
@media(max-width:700px){
 .activity-dialog{padding:18px;width:calc(100vw - 16px)}
 .role-preview-bar{align-items:stretch;flex-direction:column;gap:8px;padding:10px 14px;font-size:.9rem}
 .role-preview-bar .button{align-self:flex-start}
 .management-links{grid-template-columns:1fr 1fr}
 .club-choice-grid{grid-template-columns:1fr}
 .announcement-files{grid-template-columns:repeat(2,minmax(0,1fr))}
 .admin-section .form-actions .button{flex:1 1 160px}
 .file-dropzone{padding:.85rem}
 .club-roster-table{font-size:.88rem}
}
@media(max-width:420px){.management-links{grid-template-columns:1fr}.announcement-files{grid-template-columns:1fr}}
.attachment-list:not(.compact-evidence-list) .event-photo-evidence{grid-template-columns:1fr;padding:12px}
.attachment-list:not(.compact-evidence-list) .event-photo-evidence>div:first-child{grid-template-columns:minmax(0,1fr);gap:8px}
.attachment-list:not(.compact-evidence-list) .event-photo-evidence>div:first-child>*{grid-column:1;grid-row:auto}
.attachment-list:not(.compact-evidence-list) .event-photo-evidence .evidence-thumbnail{width:100%;height:230px;max-height:340px;object-fit:contain}
