body:not(.authenticated) .appbar,
body:not(.authenticated) main,
body:not(.authenticated) footer { display: none !important; }
#authScreen { min-height: 100vh; display: grid; place-items: center; padding: 26px; box-sizing: border-box; background: #f4f7fb; }
.authenticated #authScreen { display: none; }
#authScreen[hidden], [hidden] { display: none !important; }
.auth-card { width: 390px; max-width: 100%; padding: 30px; border: 1px solid #dce5f0; border-radius: 12px; background: #fff; box-shadow: 0 12px 40px #20375110; box-sizing: border-box; }
.auth-brand { display: flex; align-items: center; gap: 13px; margin-bottom: 26px; }
.auth-brand h1 { margin: 0; color: #263e5d; font-size: 20px; }
.auth-brand p { margin: 5px 0 0; color: #6e819a; font-size: 12px; }
.auth-card form { display: grid; gap: 9px; }
.auth-card label, .team-form label { margin-top: 8px; color: #405979; font-size: 12px; }
.auth-card input, .team-form input, .team-form select { width: 100%; height: 38px; padding: 8px 10px; border: 1px solid #bdcee3; border-radius: 5px; background: #fbfdff; color: #263e5d; font: inherit; box-sizing: border-box; outline: none; }
.auth-card input:focus, .team-form input:focus, .team-form select:focus { border-color: #789bd0; box-shadow: 0 0 0 2px #e7effc; }
.auth-submit { width: 100%; min-height: 38px; margin-top: 4px; }
.auth-error { min-height: 17px; margin: 0; color: #b44943; font-size: 12px; }
.auth-hint { margin: 0; color: #6b7f98; font-size: 11px; line-height: 1.6; }
.auth-switch { width: 100%; margin-top: 16px; padding: 8px; border: 0; background: transparent; color: #3e69ad; font-size: 12px; cursor: pointer; }
.auth-switch:hover { background: #f0f5fc; }
.password-change { margin-top: 23px; padding-top: 16px; border-top: 1px solid #e4ebf3; }
.password-change strong { display: block; margin-bottom: 10px; color: #405979; font-size: 12px; }
.password-change-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.password-change button { margin-top: 9px; padding: 6px 10px; border: 1px solid #cbd8e8; border-radius: 5px; background: #fff; color: #405979; font-size: 11px; cursor: pointer; }
#passwordMessage { margin-left: 8px; color: #56806e; font-size: 11px; }
#teamDialog { width: 680px; max-width: 95vw; }
.team-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; padding: 20px 24px; }
.team-form label { display: grid; gap: 6px; }
.team-form .primary { align-self: end; height: 36px; }
#teamError { align-self: center; color: #b44943; font-size: 11px; }
.team-list-wrap { max-height: 300px; overflow: auto; border-top: 1px solid #e5ebf2; }
.team-list { width: 100%; border-collapse: collapse; font-size: 12px; }
.team-list th, .team-list td { padding: 10px 12px; border-bottom: 1px solid #e9eef4; text-align: left; }
.team-list th { position: sticky; top: 0; background: #f6f8fb; color: #526982; }
.team-list td { color: #344e70; }
.team-list .remove-member { border: 0; background: transparent; color: #aa514b; cursor: pointer; }
.team-list .remove-member:hover { text-decoration: underline; }
@media (max-width: 600px) {
  .auth-card { padding: 24px 20px; }
  .team-form { grid-template-columns: 1fr; padding: 18px; }
  .team-list th, .team-list td { padding: 8px 7px; }
  .password-change-grid { grid-template-columns: 1fr; }
}
