/* v61: compact login method chooser, cleaner schedule cards and consistent controls. */
:root{--control-ease:cubic-bezier(.2,.75,.25,1)}

/* Login: preserve the established shell dimensions; optional methods live in a dialog. */
.loginFieldAssist{display:flex;justify-content:flex-end;min-height:19px;margin-top:4px}
.loginFieldAssistStart{justify-content:flex-start;margin-top:3px;margin-bottom:1px}
.loginInlineLink{padding:1px 0;border:0;background:none;color:#8998b3;font:500 10px/1.3 Arial,Helvetica,sans-serif;text-decoration:none;cursor:pointer;transition:color .16s ease,transform .16s ease}
.loginInlineLink:hover{color:#c2caff;transform:translateY(-1px)}
.loginAuxActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}
.loginAltButton{display:flex;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:43px;padding:8px 11px;border:1px solid rgba(137,153,185,.2);border-radius:12px;background:linear-gradient(145deg,rgba(33,42,58,.72),rgba(20,27,38,.82));color:#dce3f2;font:700 11px/1.2 Arial,Helvetica,sans-serif;cursor:pointer;transition:transform .18s var(--control-ease),border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease}
.loginAltButton:hover:not(:disabled){transform:translateY(-2px);border-color:rgba(132,145,255,.5);background:linear-gradient(145deg,rgba(48,59,83,.86),rgba(24,33,48,.94));box-shadow:0 9px 20px rgba(0,0,0,.18);color:#fff}
.loginAltButton:active:not(:disabled){transform:translateY(0) scale(.985)}
.loginAltButton:disabled,.loginAltButton.isUnavailable{opacity:.46;cursor:not-allowed;box-shadow:none}
.loginAltButton:focus-visible,.loginInlineLink:focus-visible,.loginMethodsClose:focus-visible,.loginMethodsDone:focus-visible{outline:2px solid rgba(151,163,255,.8);outline-offset:3px}
.loginAltButton>.loginIcon{width:16px;height:16px}
.loginPasskeyButton{width:auto;min-height:43px;margin:0;padding:8px 11px}
.loginPasskeyButton>span:nth-child(2){display:inline}
.loginPasskeyButton>.passkeyGlyph{display:grid;place-items:center;width:19px;height:19px;flex:0 0 19px;border:0;border-radius:0;background:none;color:#c1c9ff}
.loginPasskeyButton>.passkeyGlyph .loginIcon{width:16px;height:16px}
.loginAuthMethods{margin:0;padding:0;border:0}
.loginMethodsOverlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:22px;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
.loginMethodsOverlay.open{visibility:visible;opacity:1;pointer-events:auto}
.loginMethodsBackdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(5,8,14,.73);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);cursor:default}
.loginMethodsDialog{position:relative;z-index:1;width:min(520px,100%);max-height:min(700px,calc(100svh - 34px));overflow:auto;padding:21px;border:1px solid rgba(139,156,195,.24);border-radius:23px;background:radial-gradient(ellipse at 100% 0%,rgba(105,122,239,.13),transparent 42%),linear-gradient(160deg,#171f2b,#111720 65%,#10151d);box-shadow:0 30px 100px rgba(0,0,0,.55);transform:translateY(11px) scale(.985);transition:transform .24s var(--control-ease);scrollbar-color:#3b4860 transparent}
.loginMethodsOverlay.open .loginMethodsDialog{transform:none}
.loginMethodsDialogHeader{display:grid;grid-template-columns:43px minmax(0,1fr) 36px;align-items:center;gap:12px;margin-bottom:15px}
.loginMethodsDialogIcon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(132,145,255,.25);border-radius:14px;background:rgba(123,139,255,.11);color:#bdc5ff}
.loginMethodsDialogIcon .loginIcon{width:20px;height:20px}
.loginMethodsDialogHeader h2{margin:0;font-size:18px;letter-spacing:-.35px}
.loginMethodsDialogHeader p{margin:5px 0 0;color:#95a2b6;font-size:11px;line-height:1.45}
.loginMethodsClose{display:grid;place-items:center;width:35px;height:35px;border:1px solid rgba(137,153,185,.18);border-radius:11px;background:rgba(255,255,255,.035);color:#aeb9cc;cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease}
.loginMethodsClose:hover{transform:rotate(5deg);background:rgba(255,255,255,.09);color:#fff}
.loginMethodsClose .loginIcon{width:17px;height:17px}
.loginMethodsNotice{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(110,220,175,.2);border-radius:12px;background:rgba(73,183,139,.06);color:#a9ddc5;font-size:10px;line-height:1.5}
.loginProviderButton{position:relative;min-height:51px;padding:8px 11px;border-color:rgba(137,153,185,.16);border-radius:13px;background:rgba(9,14,22,.43);color:#e7ebf4}
.loginProviderButton:hover:not(:disabled){transform:translateY(-1px);border-color:rgba(132,145,255,.45);background:rgba(37,47,67,.7)}
.loginProviderButton.isUnavailable,.loginProviderButton:disabled{opacity:.44;cursor:not-allowed}
.loginProviderButton:disabled:hover{transform:none;border-color:rgba(137,153,185,.16);background:rgba(9,14,22,.43)}
.loginProviderLogo{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1px solid rgba(137,153,185,.13);border-radius:10px;background:rgba(255,255,255,.045);color:#e8edf7}
.loginProviderLogo .authBrandLogo{width:19px;height:19px;display:block}
.loginProviderLogo.provider-google{background:rgba(255,255,255,.94)}
.loginProviderLogo.provider-apple,.loginProviderLogo.provider-github{color:#f4f6fb}
.loginProviderLogo.provider-facebook{color:#5894ff}
.loginProviderLogo.provider-discord{color:#8e9cff}
.loginProviderLogo.provider-steam{color:#d4dfef}
.loginProviderCopy{display:grid;min-width:0;gap:3px}
.loginProviderCopy b{font-size:11px;font-weight:750}
.loginProviderCopy small{font-size:9px;color:#8c99ad;line-height:1.35}
.loginProviderButton.isUnavailable .loginProviderCopy small{color:#7d8798}
.loginMethodArrow{width:15px;height:15px;margin-left:auto;color:#77859b}
.loginEmailCodeButton{width:100%;margin-bottom:8px}
.loginEmailCodeButton .loginProviderLogo{color:#9dc8ff}
.loginMethodsHeading{margin:0 0 9px;color:#9eacc1;font-size:10px;letter-spacing:.04em}
.loginProviderGrid{gap:8px}
.loginMethodsFootnote{margin:9px 0 0;color:#778499;font-size:9px;line-height:1.45}
.loginMethodsDialogFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;padding-top:14px;border-top:1px solid rgba(137,153,185,.13);color:#79879b;font-size:9px;line-height:1.45}
.loginMethodsDone{flex:0 0 auto;padding:8px 12px;border:1px solid rgba(132,145,255,.27);border-radius:10px;background:rgba(123,139,255,.1);color:#d5daff;font:700 10px Arial,Helvetica,sans-serif;cursor:pointer;transition:background .16s ease,transform .16s ease}
.loginMethodsDone:hover{transform:translateY(-1px);background:rgba(123,139,255,.2)}
body.loginMethodsOpen{overflow:hidden}

/* Provider marks are proper brand logos in account settings too. */
.providerSettingsGlyph{display:grid;place-items:center}
.providerSettingsGlyph .providerSettingsBrandLogo{display:block;width:21px;height:21px}
.providerSettingsGlyph.provider-google{background:#fff}
.providerSettingsRow{transition:transform .18s var(--control-ease),border-color .18s ease,background .18s ease,opacity .18s ease}
.providerSettingsRow:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 40%,var(--border));background:color-mix(in srgb,var(--primary) 4%,var(--surface))}
.providerSettingsRow.isUnavailable{opacity:.67}
.providerSettingsStatus{grid-column:2;grid-row:2;align-self:center;font-size:9px}
.authMethodUnavailable{font-size:9px;text-align:right;line-height:1.35}

/* Admin method controls. */
.authMethodAdminGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.authMethodAdminRow{display:grid;grid-template-columns:37px minmax(0,1fr) minmax(112px,auto);align-items:center;gap:10px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,var(--card-2),var(--surface));animation:authAdminRowIn .3s var(--control-ease) both;animation-delay:calc(var(--auth-row-order,0)*18ms);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.authMethodAdminRow:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 34%,var(--border));box-shadow:0 8px 18px rgba(0,0,0,.08)}
.authMethodAdminLogo{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--primary) 6%,var(--surface));color:var(--text)}
.authMethodAdminLogo .authBrandLogo{width:19px;height:19px}
.authMethodAdminCopy{display:grid;min-width:0;gap:3px}
.authMethodAdminCopy b{font-size:11px}
.authMethodAdminCopy small{color:var(--muted);font-size:9px;line-height:1.35}
.authMethodModeSelect{min-height:35px;padding:0 26px 0 9px;font-size:10px}
.authMethodAdminGrid[aria-busy="true"]{opacity:.66;pointer-events:none}
@keyframes authAdminRowIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* The roster stays compact and the schedule cards keep their content height. */
.dutyWeeklySection>.dashboardCardHeading{margin-bottom:12px}
.dutyWeeklySection>.dashboardCardHeading h2{font-size:20px}
.dutyRosterIntro{display:none!important}
.dutyRosterGrid{gap:10px}
.dutyRosterCard{min-height:0;padding:14px;border-radius:16px;transition:transform .2s var(--control-ease),border-color .2s ease,box-shadow .2s ease}
.dutyRosterCard:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.12)}
.dutyRosterDay>span:nth-child(2) small{letter-spacing:.08em}
.calendar{align-items:start;grid-auto-rows:max-content}
.calendar>.service{height:max-content;min-height:0;align-self:start}
.service{padding:13px}
.serviceDateBadges{display:flex;align-items:center;justify-content:flex-start;gap:5px;flex-wrap:wrap;margin-top:5px!important}
.serviceDateBadges>*{margin:0!important}
.dashboardHero{min-height:220px;margin-bottom:13px}
.dashboardStatsGrid{gap:10px;margin-bottom:12px}
.dashboardContentGrid{gap:10px}
.dashboardCard{padding:18px}

/* Unify button finish without changing each screen's established proportions. */
.button,.monthButton,.customCalendarHead button,.adminSectionHeader,.iconButton,.closeMenu,.mobileMenuHead button,.navButton,.mobileNav button{transition:transform .18s var(--control-ease),background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}
.button{border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.07);font-weight:720;letter-spacing:-.01em}
.button:hover:not(:disabled){box-shadow:0 8px 20px rgba(0,0,0,.13)}
.button:focus-visible,.monthButton:focus-visible,.customCalendarHead button:focus-visible,.iconButton:focus-visible,.closeMenu:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 75%,white);outline-offset:2px}
.button:disabled{cursor:not-allowed;opacity:.56;transform:none;box-shadow:none}
.button.primary{box-shadow:0 5px 15px color-mix(in srgb,var(--primary) 20%,transparent)}
.button.primary:hover:not(:disabled){box-shadow:0 9px 23px color-mix(in srgb,var(--primary) 27%,transparent)}
.button.danger:hover:not(:disabled){filter:brightness(1.06)}
.navButton:hover:not(.active),.mobileNav button:hover:not(.active){transform:translateX(2px)}
.iconButton,.closeMenu{display:grid;place-items:center;border:1px solid var(--border);color:var(--text);cursor:pointer}
.iconButton:hover,.closeMenu:hover{transform:rotate(4deg);border-color:var(--border-strong);background:var(--card-2)}
.input:focus,.select:focus,.textarea:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}
.menuSearchInputWrap:focus-within{border-color:var(--border-strong);box-shadow:none}
.menuSearchInputWrap .input:focus,.menuSearchInputWrap .input:focus-visible{outline:0;box-shadow:none}
.loginAuxActions:has(.loginPasskeyButton[hidden]){grid-template-columns:1fr}
@media(max-width:760px){.authMethodAdminGrid{grid-template-columns:1fr}.authMethodAdminRow{grid-template-columns:37px minmax(0,1fr) minmax(105px,auto)}.dashboardHero{min-height:205px;margin-bottom:11px}.dashboardStatsGrid{margin-bottom:10px}.dashboardCard{padding:15px}}
@media(max-width:480px){.loginMethodsOverlay{padding:12px}.loginMethodsDialog{padding:16px;border-radius:19px;max-height:calc(100svh - 24px)}.loginProviderGrid{grid-template-columns:1fr}.loginMethodsDialogFooter{align-items:flex-start}.loginMethodsDone{align-self:center}.authMethodAdminRow{grid-template-columns:34px minmax(0,1fr) 105px;gap:8px;padding:8px}.authMethodAdminLogo{width:33px;height:33px}.dashboardHero{min-height:194px}}
@media(prefers-reduced-motion:reduce){.loginMethodsOverlay,.loginMethodsDialog,.loginAltButton,.loginInlineLink,.loginProviderButton,.providerSettingsRow,.authMethodAdminRow,.dutyRosterCard,.button,.monthButton,.customCalendarHead button,.adminSectionHeader,.iconButton,.closeMenu,.navButton,.mobileNav button{animation:none!important;transition:none!important}.loginMethodsDialog,.loginAltButton:hover,.loginProviderButton:hover,.providerSettingsRow:hover,.authMethodAdminRow:hover,.dutyRosterCard:hover,.button:hover,.navButton:hover,.mobileNav button:hover{transform:none!important}}
