.gat { --gat-border: #b7bdc5; --gat-soft: #f3f5f7; max-width:100%; line-height:1.6; }
.gat *, .gat *::before, .gat *::after { box-sizing:border-box; }
.gat .gat-scroll { overflow-x:auto; max-width:100%; margin:1rem 0; }
.gat table { width:100%; border-collapse:collapse; font:inherit; text-align:left; }
.gat th, .gat td { padding:.7rem .9rem; border-bottom:1px solid var(--gat-border); vertical-align:middle; overflow-wrap:anywhere; }
.gat th { font-weight:700; }
.gat .gat-roster td:first-child { width:130px; }
.gat .gat-roster img { display:block; width:96px; height:128px; object-fit:cover; border-radius:4px; }
.gat .gat-photos { display:flex; flex-wrap:wrap; gap:1.5rem; align-items:flex-start; }
.gat .gat-photos figure { margin:0; flex:0 1 300px; max-width:100%; }
.gat .gat-photos img { width:100%; height:auto; max-height:560px; object-fit:contain; border-radius:6px; }
.gat figcaption { font-size:.9em; }
.gat dt { font-weight:700; }.gat dd { margin:0 0 .8rem; }
.gat .gat-badge { display:inline-block; border:1px solid currentColor; border-radius:4px; padding:0 .4em; font-size:.8em; margin-left:.5em; }
.gat .gat-note { padding:1rem; border-left:4px solid #455a75; background:var(--gat-soft); color:#182331; }
.gat a:focus-visible, .gat button:focus-visible, .gat input:focus-visible, .gat select:focus-visible { outline:3px solid #2863b5; outline-offset:3px; }
.gat .page-numbers { display:flex; flex-wrap:wrap; gap:.8rem; list-style:none; padding:0; }
.gat-admin { max-width:1200px; }
.gat-admin .nav-tab-wrapper { margin-bottom:1rem; }
.gat .gat-form { margin:1rem 0 1.5rem; padding:1rem; border:1px solid var(--gat-border); border-radius:4px; background:#fff; color:#1d2327; }
.gat .gat-form > label { display:block; max-width:680px; margin:.7rem 0; font-weight:600; }
.gat .gat-form input:not([type=checkbox]):not([type=hidden]), .gat .gat-form select, .gat .gat-form textarea { display:block; width:100%; max-width:680px; margin-top:.3rem; font:inherit; }
.gat .gat-form .gat-check { display:flex; align-items:center; gap:.5rem; font-weight:400; }
.gat .gat-check input { flex:0 0 auto; }
.gat .gat-inline { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; margin:.5rem 0; }
.gat .gat-inline > label { flex:1 1 240px; margin:0; }
.gat .gat-inline p { margin:0; }
.gat .gat-attendee { padding:.7rem 0; border-bottom:1px solid var(--gat-border); }
.gat .gat-attendee span { display:block; }
.gat .gat-admin-photo { display:block; max-width:160px; max-height:220px; object-fit:contain; }
.gat .gat-danger { margin:2rem 0; border-top:1px solid var(--gat-border); padding-top:1rem; }
.gat-private { margin:0; padding:clamp(1rem,4vw,3rem); background:#f5f7fa; color:#182331; font-family:system-ui,sans-serif; }
.gat-private main { max-width:1100px; margin:auto; background:#fff; padding:clamp(1rem,3vw,2rem); border-radius:8px; }
.gat-private a { color:#174c90; }
@media(max-width:600px) { .gat th,.gat td { padding:.5rem; } .gat .gat-photos figure { flex-basis:100%; } .gat-admin .nav-tab { margin:.2rem; } }
/* Version 0.2: roster cards and left-to-right profile columns. */
.gat .gat-roster-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:1.5rem; list-style:none; padding:0; margin:1.5rem 0; }
.gat .gat-member-card { margin:0; padding:0; text-align:center; min-width:0; }
.gat .gat-member-card a { display:flex; align-items:center; flex-direction:column; gap:.6rem; text-decoration:none; }
.gat .gat-member-card img, .gat .gat-no-photo { display:block; width:150px; height:200px; max-width:100%; object-fit:cover; border-radius:6px; }
.gat .gat-no-photo { display:flex; align-items:center; justify-content:center; background:#eef1f4; color:#44505e; }
.gat .gat-card-tk { display:block; width:100%; text-align:center; font-weight:700; }
.gat table.gat-member-layout { table-layout:fixed; border:0; margin:1.5rem 0; }
.gat .gat-member-layout > tbody > tr > td { width:33.333%; vertical-align:top; border:0; padding:0 1.25rem 0 0; }
.gat .gat-member-layout h3 { margin-top:0; }
.gat .gat-member-layout .gat-photos { display:flex; flex-direction:column; gap:1rem; }
.gat .gat-member-layout .gat-photos figure { flex:none; width:100%; max-width:260px; }
.gat .gat-member-layout .gat-photos img { max-height:400px; }
.gat .gat-event-photo { margin:1.25rem 0; }
.gat .gat-event-photo img { display:block; width:auto; max-width:100%; max-height:600px; height:auto; object-fit:contain; border-radius:6px; }
@media(max-width:700px) {
 .gat table.gat-member-layout, .gat .gat-member-layout > tbody, .gat .gat-member-layout > tbody > tr, .gat .gat-member-layout > tbody > tr > td { display:block; width:100%; }
 .gat .gat-member-layout > tbody > tr > td { padding:0; margin-bottom:1.5rem; }
 .gat .gat-roster-grid { grid-template-columns:repeat(auto-fill,minmax(125px,1fr)); gap:1rem; }
 .gat .gat-member-card img, .gat .gat-no-photo { width:125px; height:167px; }
}
.gat .gat-legacy { white-space:pre-wrap; overflow-wrap:anywhere; max-height:30rem; overflow:auto; padding:1rem; border:1px solid #b7bdc5; background:#fff; }

.gat .gat-census-filters .gat-check { display:inline-flex; align-items:center; gap:.5rem; margin-right:1.5rem; }

.gat #gat-import-meter { display:block; width:min(100%,32rem); height:1.25rem; margin:1rem 0; }

.gat [hidden] { display:none !important; }

/* Keep complete dates readable, including on narrow member pages. */
.gat .gat-history th:first-child, .gat .gat-history td:first-child { min-width:8.5rem; width:8.5rem; white-space:nowrap; overflow-wrap:normal; }
.gat .gat-add-entry { margin:1rem 0 2rem; }
.gat .gat-add-entry > summary { cursor:pointer; font-size:1.15em; font-weight:600; }
.gat .gat-year-filter { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin:1rem 0; }
.gat .gat-memorial { margin-top:2.5rem; padding-top:1rem; border-top:1px solid var(--gat-border); }

.gat-card-name{display:block;text-align:center}
