.aam-group-attendance { display: grid; gap: .5rem; margin-block: 1rem; }
.aam-attendance-open, .aam-attendance-dialog button { min-block-size: 2.75rem; padding: .6rem .9rem; border: 1px solid currentColor; border-radius: .5rem; font: inherit; cursor: pointer; }
.aam-attendance-open { justify-self: start; background: var(--accent, #12b8ad); color: #082c29; font-weight: 700; }
.aam-attendance-dialog { box-sizing: border-box; inline-size: min(42rem, 94vw); max-block-size: 90vh; max-block-size: 90dvh; padding: 1rem; border: 1px solid #667880; border-radius: .8rem; background: #172126; color: #f7fafb; font: inherit; }
.aam-attendance-dialog[open] { display: flex; flex-direction: column; gap: .65rem; }
.aam-attendance-dialog:not([open]) { display: none; }
.aam-attendance-dialog::backdrop { background: rgb(0 0 0 / 70%); }
.aam-attendance-dialog.is-dialog-fallback { position: fixed; inset: 0; z-index: 1000; inline-size: auto; max-block-size: none; margin: 0; border-radius: 0; padding-block: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-bottom)); padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right)); }
.aam-attendance-header { display: grid; flex: 0 0 auto; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .5rem; }
.aam-attendance-header h2 { margin: 0; font-size: 1.1rem; overflow-wrap: anywhere; }
.aam-attendance-counts, .aam-attendance-state, .aam-attendance-error, .aam-attendance-inline-status { margin: 0; }
.aam-attendance-state { color: #d0dde3; font-size: .875rem; }
.aam-attendance-counts { font-weight: 700; font-size: .9rem; }
.aam-attendance-error { padding: .6rem; border-inline-start: .25rem solid #ffbd75; color: #ffdab2; }
.aam-attendance-list { flex: 1 1 auto; min-block-size: 0; padding: .1rem; overflow-y: auto; overscroll-behavior: contain; }
.aam-attendance-pickup { margin-block-end: .65rem; border: 1px solid #617680; border-radius: .55rem; background: #202e35; overflow: hidden; }
.aam-attendance-pickup:last-child { margin-block-end: 0; }
.aam-attendance-pickup-summary { box-sizing: border-box; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .5rem; min-block-size: 2.75rem; padding: .6rem .7rem; cursor: pointer; overflow-wrap: anywhere; }
.aam-attendance-pickup-summary::-webkit-details-marker { display: none; }
.aam-attendance-pickup-summary::before { content: "▸"; }
.aam-attendance-pickup[open] > .aam-attendance-pickup-summary::before { content: "▾"; }
.aam-attendance-pickup-count { color: #b9d2dc; font-size: .8rem; white-space: nowrap; }
.aam-attendance-meeting { margin: 0; padding: 0 .7rem .55rem; color: #c5d7df; font-size: .8rem; overflow-wrap: anywhere; }
.aam-attendance-pickup-list { padding: 0; margin: 0; list-style: none; }
.aam-attendance-person { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: .5rem; padding-inline: .7rem; border-block-start: 1px solid #3d515b; }
.aam-attendance-presence { display: flex; align-items: center; gap: .65rem; min-block-size: 2.75rem; overflow-wrap: anywhere; cursor: pointer; }
.aam-attendance-presence input { flex: 0 0 auto; inline-size: 1.4rem; block-size: 1.4rem; margin: 0; accent-color: #2bd5b8; }
.aam-attendance-name { flex: 1 1 auto; min-inline-size: 0; font-size: .925rem; font-weight: 600; }
.aam-attendance-party-count { flex: 0 0 auto; min-block-size: 2.75rem; max-inline-size: 6rem; padding: .4rem; border: 1px solid #8199a4; border-radius: .4rem; background: #172126; color: #f7fafb; font: inherit; cursor: pointer; }
.aam-attendance-comments { grid-column: 1 / -1; margin: 0; padding-block-end: .5rem; color: #c5d7df; font-size: .8rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.aam-attendance-person-status { font-size: .8rem; color: #ffcf9d; white-space: nowrap; }
.aam-attendance-person.is-present { background: #163c35; }
.aam-attendance-person.is-absent { background: #3d3026; }
.aam-attendance-unresolved { margin: 0; padding: .6rem; color: #ffdab2; }
.aam-attendance-footer { display: grid; flex: 0 0 auto; gap: .5rem; }
.aam-attendance-recovery summary { display: list-item; min-block-size: 2.75rem; align-content: center; cursor: pointer; }
.aam-attendance-recovery button { margin-block-start: .5rem; }
.aam-attendance-sync { background: transparent; color: #f7fafb; }
.aam-attendance-finish { background: #30d0b1; color: #092f28; font-weight: 700; }
.aam-attendance-dialog button:disabled, .aam-attendance-dialog input:disabled, .aam-attendance-dialog select:disabled, .aam-attendance-dialog [aria-disabled="true"] { cursor: not-allowed; opacity: .6; }
.aam-attendance-dialog button:focus-visible, .aam-attendance-dialog input:focus-visible, .aam-attendance-dialog select:focus-visible, .aam-attendance-pickup-summary:focus-visible, .aam-attendance-open:focus-visible { outline: .2rem solid #ffcf6e; outline-offset: .1rem; }
@media (max-width: 24rem) { .aam-attendance-pickup-summary { grid-template-columns: auto minmax(0, 1fr); } .aam-attendance-pickup-count { grid-column: 2; } }
@media (max-width: 42rem) {
  .aam-attendance-dialog {
    inline-size: 100%; block-size: 100vh; block-size: 100dvh;
    max-inline-size: 100%; max-block-size: 100vh; max-block-size: 100dvh;
    margin: 0; border: 0; border-radius: 0;
    padding-block: max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-bottom));
    padding-inline: max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right));
  }
}
