.account-entry {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  visibility: visible;
  opacity: 1;
  min-height: 34px;
  padding: 7px 13px;
  border: 1px solid #2f7259;
  border-radius: 4px;
  background: #f4faf6;
  color: #174536;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.account-entry.is-signed-in { border-color: #8fc4aa; background: #dfeee5; color: #123f31; }
.account-anonymous[hidden], .account-authenticated[hidden], .account-form[hidden], .account-system-admin[hidden], .account-access-requests[hidden] { display: none !important; }
.account-modal[hidden] { display: none; }
.account-modal { position: fixed; z-index: 240; inset: 0; display: grid; place-items: center; padding: 24px; }
.account-modal-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(13, 28, 22, .7); backdrop-filter: blur(5px); }
.account-modal-panel { position: relative; width: min(1120px, 100%); max-height: min(860px, calc(100vh - 48px)); overflow: auto; border: 1px solid rgba(25, 67, 50, .2); border-radius: 14px; background: #f5f4ec; box-shadow: 0 28px 90px rgba(4, 23, 16, .34); color: #17372d; }
.account-modal-panel > header { position: sticky; z-index: 3; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-bottom: 1px solid rgba(24, 53, 44, .13); background: rgba(255, 254, 249, .96); }
.account-modal-panel > header h2 { margin: 0; font-size: 24px; }.account-modal-panel > header .eyebrow { margin: 0 0 4px; }
.account-modal-panel > header > button { width: 36px; height: 36px; border: 1px solid rgba(24, 53, 44, .14); border-radius: 50%; background: #fff; color: #174536; font-size: 22px; }
.account-anonymous { width: min(460px, calc(100% - 40px)); margin: 34px auto 44px; padding: 28px; border: 1px solid rgba(24, 53, 44, .13); border-radius: 12px; background: #fffef9; }
.account-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 4px; border-radius: 8px; background: #e9eee8; }.account-mode-tabs button { min-height: 40px; border: 0; border-radius: 6px; background: transparent; color: #687a72; font-weight: 800; }.account-mode-tabs button.is-active { background: #fff; color: #124a39; box-shadow: 0 3px 12px rgba(20, 63, 49, .1); }
.account-form { display: grid; gap: 15px; margin-top: 22px; }.account-form label { display: grid; gap: 7px; color: #23473b; font-size: 11px; font-weight: 800; }.account-form input, .account-form select, .account-form textarea, .account-session-bar select { width: 100%; min-height: 42px; box-sizing: border-box; padding: 8px 11px; border: 1px solid rgba(24, 53, 44, .18); border-radius: 6px; outline: none; background: #fff; color: #17372d; font: inherit; }.account-form input:focus, .account-form select:focus, .account-form textarea:focus { border-color: #388064; box-shadow: 0 0 0 3px rgba(56, 128, 100, .12); }
.account-primary { min-height: 44px; border: 0; border-radius: 6px; background: #124b3a; color: #fff; font-weight: 800; }.account-help { margin: 0; color: #677970; font-size: 11px; line-height: 1.7; }.account-message { min-height: 18px; margin: 0; color: #a03931; font-size: 11px; line-height: 1.6; }.account-message.is-ok { color: #1f684f; }
.account-authenticated { padding: 20px 24px 30px; }.account-session-bar { display: grid; grid-template-columns: 1fr minmax(220px, 320px) auto; gap: 14px; align-items: end; padding: 16px; border: 1px solid rgba(24, 53, 44, .13); border-radius: 10px; background: #fffef9; }.account-session-bar > div { display: grid; gap: 4px; }.account-session-bar > div span, .account-session-bar label { color: #718079; font-size: 10px; }.account-session-bar > button { min-height: 40px; padding: 0 14px; border: 1px solid rgba(24, 53, 44, .15); border-radius: 6px; background: #fff; color: #174536; font-weight: 800; }
.account-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 16px 0; }.account-summary article { padding: 15px; border: 1px solid rgba(24, 53, 44, .12); border-radius: 9px; background: #fffef9; }.account-summary span { color: #718079; font-size: 10px; }.account-summary strong { display: block; margin-top: 7px; color: #14513e; font-size: 22px; }
.account-management-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }.account-management-grid > section, .account-management-grid > aside > form, .account-access-requests { padding: 18px; border: 1px solid rgba(24, 53, 44, .13); border-radius: 10px; background: #fffef9; }.account-management-grid > aside { display: grid; gap: 12px; }.account-form.compact { margin: 0; }.account-form.compact h3 { margin: 0; font-size: 15px; }.account-form fieldset { margin: 0; padding: 10px; border: 1px solid rgba(24, 53, 44, .14); border-radius: 6px; }.account-form legend { padding: 0 5px; color: #36584d; font-size: 10px; font-weight: 800; }.account-form fieldset label { display: flex; grid-template-columns: none; align-items: center; gap: 8px; margin: 7px 0; font-weight: 500; }.account-form fieldset input { width: 15px; min-height: auto; }
.account-section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }.account-section-title div { display: grid; gap: 4px; }.account-section-title span { color: #2f7a60; font-size: 9px; font-weight: 900; letter-spacing: .12em; }.account-section-title strong { font-size: 16px; }
.account-member-list { display: grid; gap: 7px; }.account-member-row { display: grid; grid-template-columns: 1fr 1fr .8fr .9fr auto; gap: 10px; align-items: center; min-height: 52px; padding: 8px 10px; border-top: 1px solid rgba(24, 53, 44, .1); color: #687970; font-size: 10px; }.account-member-row:first-child { border-top: 0; }.account-member-row strong { color: #193c31; font-size: 12px; }.account-member-row button { min-height: 30px; border: 0; border-radius: 5px; background: #e4efe7; color: #14513e; font-size: 9px; font-weight: 800; }.account-member-row button:disabled { opacity: .45; }
.account-status { display: inline-flex; width: fit-content; padding: 4px 7px; border-radius: 999px; background: #edf1ec; color: #677970; font-size: 9px; font-weight: 800; }.account-status.pending { background: #fff0d8; color: #97601e; }.account-status.ok { background: #e4efe7; color: #24634c; }
.account-access-requests { margin-top: 16px; }.account-request-row { display: grid; grid-template-columns: .8fr 1fr 1fr 1.4fr; gap: 10px; padding: 10px; border-top: 1px solid rgba(24, 53, 44, .1); color: #687970; font-size: 10px; }.account-request-row:first-child { border-top: 0; }.account-empty { padding: 24px; color: #76847e; text-align: center; font-size: 11px; }
.account-system-admin { margin: 16px 0; padding: 18px; border: 1px solid rgba(24, 53, 44, .16); border-radius: 10px; background: #edf3ed; }
.account-system-admin .account-section-title > button { min-height: 34px; padding: 0 12px; border: 1px solid rgba(24, 53, 44, .16); border-radius: 6px; background: #fff; color: #174536; font-weight: 800; }
.account-instructor-entry { width: fit-content; min-height: 38px; margin: 12px 0 4px; padding: 0 14px; display: inline-flex; align-items: center; border-radius: 6px; background: #174536; color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; }
.account-instructor-entry:hover, .account-instructor-entry:focus-visible { background: #23664f; outline: 2px solid rgba(23, 69, 54, .24); outline-offset: 2px; }
.account-batch-toolbar { display: grid; grid-template-columns: auto auto minmax(190px, 1fr) auto; gap: 10px; align-items: end; margin-top: 14px; padding: 12px; border: 1px solid rgba(24, 53, 44, .14); border-radius: 8px; background: #fffef9; }.account-batch-toolbar label { display: grid; gap: 5px; color: #526a61; font-size: 10px; font-weight: 800; }.account-batch-toolbar .account-batch-check { display: flex; align-items: center; align-self: center; gap: 7px; }.account-batch-toolbar input[type="checkbox"] { width: 16px; height: 16px; accent-color: #174f3d; }.account-batch-toolbar > span { align-self: center; min-width: 72px; color: #2d6250; font-size: 10px; font-weight: 800; }.account-batch-toolbar select { min-height: 36px; padding: 6px 9px; border: 1px solid rgba(24, 53, 44, .18); border-radius: 5px; background: #fff; color: #17372d; }.account-batch-toolbar button { min-height: 36px; padding: 0 14px; border: 0; border-radius: 5px; background: #174f3d; color: #fff; font-size: 10px; font-weight: 800; }.account-batch-toolbar button:disabled { background: #b8c1bc; cursor: default; }
.account-registered-users { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.account-user-admin-card { min-width: 0; padding: 14px; border: 1px solid rgba(24, 53, 44, .12); border-radius: 9px; background: #fffef9; }
.account-user-admin-card > header, .account-user-admin-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.account-user-admin-card > header > div { flex: 1; }.account-user-select { display: grid; flex: 0 0 auto; place-items: center; }.account-user-select input { width: 17px; height: 17px; margin: 0; accent-color: #174f3d; }.account-user-select input:disabled { opacity: .35; }
.account-user-admin-card > header div { display: grid; gap: 4px; }.account-user-admin-card > header strong { color: #163e31; font-size: 13px; }.account-user-admin-card > header span, .account-user-admin-card > footer span { color: #718079; font-size: 9px; }
.account-user-admin-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; }.account-user-admin-fields label { display: grid; gap: 5px; color: #526a61; font-size: 9px; font-weight: 800; }
.account-user-admin-fields select, .account-project-access-row select { width: 100%; min-height: 34px; border: 1px solid rgba(24, 53, 44, .16); border-radius: 5px; background: #fff; color: #17372d; }
.account-user-admin-card details { border-top: 1px solid rgba(24, 53, 44, .1); border-bottom: 1px solid rgba(24, 53, 44, .1); }.account-user-admin-card summary { padding: 10px 0; color: #215240; font-size: 10px; font-weight: 800; cursor: pointer; }
.account-project-access-list { display: grid; gap: 6px; padding-bottom: 10px; }.account-project-access-row { display: grid; grid-template-columns: minmax(0, 1fr) 108px; gap: 8px; align-items: center; }.account-project-access-row label { display: grid; grid-template-columns: 16px 1fr auto; gap: 6px; align-items: center; color: #24493d; font-size: 9px; }.account-project-access-row input { width: 14px; height: 14px; }.account-project-access-row small { color: #809087; }
.account-user-admin-card > footer { padding-top: 11px; }.account-user-admin-card > footer button { min-height: 32px; padding: 0 11px; border: 0; border-radius: 5px; background: #174f3d; color: #fff; font-size: 9px; font-weight: 800; }.account-user-admin-card > footer button:disabled { background: #b4bdb8; }

@media (max-width: 900px) { .account-management-grid { grid-template-columns: 1fr; }.account-summary { grid-template-columns: repeat(2, 1fr); }.account-session-bar { grid-template-columns: 1fr 1fr; }.account-session-bar > button { grid-column: 2; }.account-member-row { min-width: 720px; }.account-member-list { overflow: auto; }.account-registered-users { grid-template-columns: 1fr; }.account-batch-toolbar { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .account-modal { padding: 0; }.account-modal-panel { max-height: 100vh; min-height: 100vh; border-radius: 0; }.account-authenticated { padding: 14px; }.account-session-bar { grid-template-columns: 1fr; }.account-session-bar > button { grid-column: auto; }.account-summary { grid-template-columns: 1fr 1fr; }.account-anonymous { padding: 20px; }.account-entry { padding-inline: 8px; } }
