[hidden] { display: none !important; }

body.auth-pending { min-height: 100vh; background: #47585c; }
body.auth-pending > * { visibility: hidden; }
body.is-login { min-height: 100vh; background: #47585c; }

.auth-screen {
  width: 100%;
  min-height: 100vh;
  padding: max(26px, env(safe-area-inset-top)) 22px max(26px, env(safe-area-inset-bottom));
  display: grid;
  place-items: center;
  background: #47585c;
}

.login-card { width: min(100%, 390px); color: #fff; }
.login-brand { display: flex; align-items: flex-end; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid rgba(200,213,187,.58); }
.login-brand .brand-lockup { font-size: 43px; }
.login-brand p { margin: 0 0 3px; color: #c8d5bb; font-size: 12px; font-weight: 700; letter-spacing: -.02em; }
.login-heading { padding: 38px 0 25px; }
.login-kicker { margin: 0 0 7px !important; color: #c8d5bb !important; font-size: 12px !important; font-weight: 750; }
.login-heading h1 { margin: 0; color: #fff; font-size: 34px; font-weight: 760; line-height: 1.18; letter-spacing: -.055em; }

.login-form { display: flex; flex-direction: column; }
.password-change-form { padding-top: 30px; }
.password-change-copy { margin: 0 0 25px; color: #fff; font-size: 18px; font-weight: 700; line-height: 1.5; letter-spacing: -.035em; }
.login-form > label { margin: 0 0 8px; color: #c8d5bb; font-size: 11px; font-weight: 750; }
.login-form > label:not(:first-child) { margin-top: 18px; }
.login-form input {
  width: 100%;
  height: 56px;
  border: 1px solid rgba(200,213,187,.64);
  border-radius: 12px;
  padding: 0 16px;
  background: transparent;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 650;
  outline: 0;
  transition: border-color .18s ease, background .18s ease;
}
.login-form input::placeholder { color: rgba(255,255,255,.42); font-weight: 500; }
.login-form input:focus { border-color: #fff; background: rgba(255,255,255,.045); }
.login-form input[aria-invalid="true"] { border-color: #c8d5bb; box-shadow: inset 0 0 0 1px #c8d5bb; }
.login-form input:disabled { opacity: .62; }
.password-field { position: relative; }
.password-field input { padding-right: 67px; }
.password-field button { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); min-width: 48px; height: 38px; border: 0; background: transparent; color: #c8d5bb; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.password-field button:hover { color: #fff; }
.login-submit { width: 100%; height: 58px; margin-top: 26px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #c8d5bb; border-radius: 12px; background: #c8d5bb; color: #47585c; font: inherit; font-size: 14px; font-weight: 850; cursor: pointer; transition: background .18s ease, color .18s ease; }
.login-submit:hover { background: #fff; color: #47585c; }
.login-submit:disabled { cursor: wait; opacity: .7; }
.login-help { margin: 18px 0 0; color: rgba(255,255,255,.55); font-size: 11px; line-height: 1.55; text-align: center; }

.employee-session { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: -5px 0 18px; padding: 10px 0; border-top: 1px solid rgba(200,213,187,.48); border-bottom: 1px solid rgba(200,213,187,.48); }
.employee-session > span { min-width: 0; display: flex; align-items: center; gap: 7px; }
.employee-session i { width: 6px; height: 6px; flex: none; border-radius: 50%; background: #c8d5bb; }
.employee-session strong { color: #fff; font-size: 11px; font-weight: 750; }
.employee-session small { color: #c8d5bb; font-size: 10px; }
.employee-session button { flex: none; border: 0; padding: 5px 0 5px 10px; background: transparent; color: #c8d5bb; font: inherit; font-size: 10px; font-weight: 750; cursor: pointer; }
.employee-session button:hover { color: #fff; }
.admin-session { margin: 0; }

.employee-meta-line { position:relative; display:flex; align-items:center; justify-content:space-between; gap:14px; margin:-11px 0 18px; }
.employee-meta-line .deadline-line { margin:0; min-width:0; }
.employee-profile-menu { position:relative; flex:none; }
.employee-profile-trigger { display:flex; align-items:center; gap:6px; border:0; padding:5px 0 5px 10px; background:transparent; color:#fff; font:inherit; font-size:14px; font-weight:800; letter-spacing:-.035em; cursor:pointer; }
.employee-profile-trigger > span:last-child { color:#c8d5bb; font-size:10px; }
.employee-profile-popover { position:absolute; z-index:12; top:calc(100% + 8px); right:0; min-width:132px; padding:10px; border:1px solid #c8d5bb; border-radius:10px; background:#fff; box-shadow:0 12px 28px rgba(71,88,92,.18); }
.employee-profile-popover small { display:block; padding:3px 5px 9px; color:#47585c; font-size:10px; border-bottom:1px solid rgba(71,88,92,.15); }
.employee-profile-popover button { width:100%; margin-top:5px; border:0; padding:8px 5px; background:transparent; color:#47585c; font:inherit; font-size:11px; font-weight:800; text-align:left; cursor:pointer; }

.admin-action-row { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid rgba(200,213,187,.48); }
.admin-profile-trigger { padding:10px 0 11px 10px; font-size:12px; }
.admin-profile-menu .employee-profile-popover { top:calc(100% + 6px); }

.admin-view-switch { display:flex; gap:22px; margin:-4px 0 0; }
.admin-view-switch button { position:relative; border:0; padding:10px 0 11px; background:transparent; color:rgba(255,255,255,.58); font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.admin-view-switch button.active { color:#fff; }
.admin-view-switch button.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:#c8d5bb; }
.admin-view-switch span { display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:4px; padding:0 5px; border-radius:999px; background:rgba(200,213,187,.18); color:#c8d5bb; font-size:9px; }

.account-panel-body { padding: 20px 0 4px; }
.account-view { min-height:620px; }
.account-view-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; padding:8px 0 24px; border-bottom:1px solid rgba(71,88,92,.22); }
.account-view-head h2 { margin:3px 0 5px; font-size:27px; letter-spacing:-.055em; }
.account-view-head p:last-child { margin:0; color:#47585c; font-size:11px; }
.account-view-head > strong { flex:none; display:grid; place-items:center; min-width:46px; height:46px; border-radius:50%; background:#c8d5bb; color:#47585c; font-size:13px; }
.account-create-card { padding:24px 0; border-bottom:1px solid rgba(71,88,92,.22); }
.account-list-section { padding:24px 0 6px; }
.account-list-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.account-list-heading h3 { margin:0; font-size:16px; }
.account-list-heading span { color:#47585c; font-size:10px; }
.employee-account-form { display: grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap: 12px; align-items:end; }
.employee-account-form > div { display:flex; flex-direction:column; gap:7px; }
.employee-account-form label { color:#47585c; font-size:11px; font-weight:750; }
.employee-account-form input { height:46px; border:1px solid rgba(71,88,92,.28); border-radius:10px; padding:0 13px; background:#fff; color:#47585c; font:inherit; font-size:13px; outline:0; }
.employee-account-form input:focus { border-color:#47585c; }
.employee-account-form input[aria-invalid="true"] { box-shadow:inset 0 0 0 1px #47585c; }
.employee-account-form .small-primary { min-width:96px; height:46px; }
.account-help { margin-top:10px; }
.initial-password-result { margin:17px 0; padding:14px 15px; display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid #c8d5bb; background:rgba(200,213,187,.2); }
.initial-password-result > div { display:flex; flex-direction:column; gap:4px; }
.initial-password-result span { font-size:10px; color:#47585c; }
.initial-password-result strong { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:15px; letter-spacing:.03em; }
.initial-password-result button { border:0; background:transparent; color:#47585c; font:inherit; font-size:11px; font-weight:800; cursor:pointer; }
.employee-account-list { margin-top:18px; border-top:1px solid rgba(71,88,92,.2); }
.employee-account-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 2px; border-bottom:1px solid rgba(71,88,92,.16); }
.employee-account-row > span { display:flex; align-items:baseline; gap:9px; }
.employee-account-row strong { font-size:13px; }
.employee-account-row small { color:#47585c; font-size:10px; }
.employee-account-row em { font-style:normal; font-size:10px; font-weight:750; color:rgba(71,88,92,.55); }
.employee-account-row em.active { color:#47585c; }
.account-row-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.account-row-actions em { min-width:58px; text-align:right; }
.account-row-actions button { min-height:34px; padding:6px 9px; border:1px solid rgba(71,88,92,.27); border-radius:7px; background:transparent; color:#47585c; font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
.account-row-actions button:hover:not(:disabled), .account-row-actions button:focus-visible { background:#c8d5bb; border-color:#c8d5bb; }
.account-row-actions button:disabled { opacity:.45; cursor:default; }
.account-action-status { min-height:18px; margin:12px 0 0; color:#47585c; font-size:11px; }
.account-empty { margin:15px 0 0; color:#47585c; font-size:11px; }

@media (min-width: 640px) {
  .auth-screen { padding-left: 28px; padding-right: 28px; }
  .login-card { padding: 32px; border: 1px solid rgba(200,213,187,.45); border-radius: 24px; }
}

@media (max-width: 360px) {
  .auth-screen { padding-left: 18px; padding-right: 18px; }
  .login-heading { padding-top: 32px; }
  .login-heading h1 { font-size: 30px; }
  .login-brand .brand-lockup { font-size: 38px; }
}

@media (max-width: 650px) {
  .employee-meta-line { align-items:flex-start; }
  .employee-meta-line .deadline-line { font-size:10px; }
  .employee-profile-trigger { font-size:13px; }
  .admin-view-switch { margin-top:0; }
  .account-view-head { align-items:center; }
  .account-view-head h2 { font-size:23px; }
  .account-view-head p:last-child { display:none; }
  .employee-account-form { grid-template-columns:1fr; }
  .employee-account-form .small-primary { width:100%; }
  .employee-account-row > span { flex-direction:column; gap:1px; }
  .employee-account-row { align-items:flex-start; }
  .account-row-actions { gap:5px; }
  .account-row-actions em { flex-basis:100%; margin-bottom:3px; }
}
