/* Shared card rhythm. The Adaptive headquarters keeps its own layout. */
:root { --card-gap: clamp(16px, 1.6vw, 24px); }
.portal-shell :is(.panel,.achievement-card,.kpi-card,.position-card,.notification-card,.appearance-live-preview) {
  min-width:0; overflow-wrap:anywhere;
  background:var(--card-background,var(--surface)); color:var(--card-text,var(--text));
  --text:var(--card-text); --muted:var(--card-muted); --primary:var(--card-primary); --primary-strong:var(--card-primary);
  border-color:var(--border);
}
.portal-shell :is(.panel,.achievement-card,.appearance-live-preview) { box-shadow:0 4px 16px rgb(12 45 65 / .055); }
.portal-shell :is(.admin-grid,.resource-card-list,.resource-admin-list,.club-choice-grid,.achievement-list,.club-roster-list,.announcement-admin-list) { gap:var(--card-gap); }
.portal-shell :is(.admin-grid,.resource-card-list,.resource-admin-list,.club-choice-grid) { align-items:stretch; }
.portal-shell :is(.panel,.achievement-card,.resource-card,.club-choice-card) > * { min-width:0; max-width:100%; }
.portal-shell :is(.club-choice-card,.resource-card) { display:flex; flex-direction:column; height:auto; }
.club-choice-card > .form-actions,.resource-card > .resource-card-actions { margin-top:auto; padding-top:16px; }
.portal-shell :is(.form-actions,.achievement-actions,.resource-card-actions) { gap:10px; }
.portal-shell :is(.form-actions,.achievement-actions,.resource-card-actions) > :is(button,a) { white-space:normal; overflow-wrap:anywhere; min-height:42px; max-width:100%; }
.portfolio-summary > .portfolio-explorer { grid-column:1/-1; }
.portfolio-explorer { display:grid; gap:14px; min-width:0; margin-bottom:20px; }
.portfolio-explorer > .button { justify-self:start; }
.portfolio-filter-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:14px; }
.portfolio-explorer label,.club-leadership-controls label { display:grid; gap:7px; min-width:0; }
.portfolio-explorer select,.club-leadership-controls select { width:100%; min-width:0; }
.portfolio-explorer-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.portfolio-explorer-metrics > div { display:grid; gap:6px; padding:16px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface-soft); }
.portfolio-explorer-metrics strong { font-size:calc(24px * var(--font-scale)); }
.portfolio-explorer-metrics span { font-size:calc(12px * var(--font-scale)); color:var(--muted); }
.portfolio-distribution { display:grid; gap:10px; }
.portfolio-distribution-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; padding:12px; text-align:left; border:1px solid var(--border); }
.portfolio-distribution-row progress { grid-column:1/-1; width:100%; height:8px; accent-color:var(--primary); }
.club-participation-note { margin:16px 0; padding:14px; border:1px solid var(--border); border-left:3px solid var(--primary); border-radius:var(--radius-sm); background:var(--surface-soft); }
.club-participation-note p { margin:6px 0; line-height:1.5; white-space:pre-wrap; }
.club-leadership-controls { display:flex; flex-wrap:wrap; gap:14px; align-items:end; margin-bottom:20px; }
.club-leadership-controls > * { flex:1 1 230px; }
.club-member-list { display:grid; gap:14px; }
.club-member-row { padding:16px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface); overflow-wrap:anywhere; }
.club-member-row > p { margin:6px 0 12px; }
.club-review-form { padding:12px 0; }
#club-leadership-content { display:grid; gap:var(--card-gap); }
.club-leadership-records { display:grid; gap:var(--card-gap); }
#club-leadership-content h2 { margin:8px 0 0; }
.portal-shell .attachment-list:not(.compact-evidence-list) .event-photo-evidence .evidence-thumbnail {
  display:block; width:100%; height:auto; aspect-ratio:4/3; max-height:none; object-fit:contain; background:var(--surface);
}
.portal-shell .announcement-files img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; background:var(--surface); }
.portal-shell .achievement-period-heading { grid-column:1/-1; margin-top:8px; }
.portal-shell .achievement-heading > div { flex:1 1 180px; min-width:0; }
.portal-shell .resource-card-heading > div { min-width:0; }
.compact-disclosure > summary { position:relative; list-style:none; min-height:44px; padding-right:40px; }
.compact-disclosure > summary::-webkit-details-marker { display:none; }
.compact-disclosure > summary::marker { content:''; }
.compact-disclosure > summary::after { content:''; position:absolute; right:16px; top:50%; width:8px; height:8px; border:solid currentColor; border-width:0 2px 2px 0; transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.compact-disclosure[open] > summary::after { transform:translateY(-20%) rotate(225deg); }
:root[data-high-contrast="true"] .portal-shell :is(.panel,.achievement-card,.appearance-live-preview) { box-shadow:none; border-width:2px; }
@media (min-width:1450px) {
  .portfolio-readonly .achievement-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
}
@media (max-width:640px) {
  .portfolio-explorer-metrics { grid-template-columns:minmax(0,1fr); }
  .portfolio-explorer-metrics > div { grid-template-columns:60px minmax(0,1fr); align-items:center; }
  .portfolio-explorer-metrics span { font-size:calc(14px * var(--font-scale)); }
  .portfolio-distribution-row { grid-template-columns:minmax(0,1fr); }
  .club-leadership-controls { display:grid; grid-template-columns:minmax(0,1fr); }
}
@media (forced-colors:active) {
  .portal-shell :is(.panel,.achievement-card,.kpi-card,.position-card,.notification-card,.appearance-live-preview) { background:Canvas; color:CanvasText; border-color:CanvasText; box-shadow:none; }
}
@media print {
  .portal-shell :is(.panel,.achievement-card,.kpi-card,.position-card,.notification-card) { background:white; color:black; box-shadow:none; break-inside:avoid; }
}
.club-award-actions { display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px; }
.club-event-list { display:grid;gap:var(--card-gap);min-width:0; }
:is(.club-member-list,.club-event-list)[data-collection-layout="tiles"] { grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));align-items:start; }
:is(.club-member-list,.club-event-list)[data-collection-layout="list"] { grid-template-columns:minmax(0,1fr); }
:is(.club-member-list,.club-event-list) > .collection-item > :is(button,.form-actions) { max-width:100%; }
