/* authenticator.css — Patron as the authenticator app (authenticator.js, p26 2026-11-04). Every rule is .au-*, on the
   design system's own tokens (base.css; the chats look redefines them), so the sheets read the same in both looks.
   Monochrome: the only colour is warn, on a code with five seconds or less left — it means something. */

.sheet.au-sheet{max-height:min(680px,94vh)}
.sheet.au-panel{width:min(760px,100%)}
.au-pane{display:flex;flex-direction:column;gap:var(--s-l)}
.au-pane>.hint,.au-pane>.field{margin:0}
.au-grow{flex:1}
.au-footnote{margin:0;max-width:44ch}
.au-note{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.au-note.bad{color:var(--bad)}

/* 1. getting the key */
.au-lead{display:flex;gap:var(--s-l);align-items:flex-start}
.au-lead>svg{flex:none;width:22px;height:22px;margin-top:2px;color:var(--muted)}
.au-lead .hint{margin:0}
.au-ways{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-m)}
.au-way{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:96px;padding:14px 16px;border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer;
  transition:background .12s ease,border-color .12s ease}
.au-way:hover:not(:disabled){background:var(--card2);border-color:var(--line2)}
.au-way:disabled{opacity:.45;cursor:default}
.au-way>svg{width:22px;height:22px;margin-bottom:6px;color:var(--text)}
.au-way-t{font-size:14px;font-weight:500}
.au-way-s{font-size:12.5px;color:var(--faint)}
.au-or{display:flex;align-items:center;gap:var(--s-l);font-size:12px;color:var(--faint)}
.au-or::before,.au-or::after{content:"";flex:1;height:1px;background:var(--line)}
.au-keyrow{display:flex;gap:var(--s-s);align-items:center}
.au-keyrow .f{flex:1;min-width:0}
.au-keyrow+.hint{margin:0}

/* the camera */
.au-cam{position:relative;width:100%;aspect-ratio:4/3;max-height:52vh;border-radius:var(--r-md);overflow:hidden;background:#0d0d0d;
  border:1px solid var(--line)}
.au-video{width:100%;height:100%;object-fit:cover;display:block}
.au-frame{position:absolute;left:50%;top:50%;width:min(62%,240px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:18px;
  box-shadow:0 0 0 2000px rgba(0,0,0,.38);border:2px solid rgba(255,255,255,.85)}

/* 2. checking what it holds */
.au-found{display:flex;align-items:center;gap:var(--s-l);padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}
.au-who{display:flex;flex-direction:column;min-width:0;flex:1}
.au-site{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-user{font-size:12.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-mark{flex:none;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--card2);
  box-shadow:inset 0 0 0 1px var(--line2);color:var(--text);font-size:13px;font-weight:600}
.au-seg{display:flex;width:fit-content;max-width:100%;flex-wrap:wrap}
.au-seg button:disabled{opacity:.4;cursor:default}
.au-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.au-erow{display:flex;align-items:center;gap:var(--s-l);padding:10px 14px;border-top:1px solid var(--line)}
.au-erow:first-child{border-top:0}
.au-erow.off .au-site{color:var(--muted)}
.au-erow.off .au-user{white-space:normal}
.au-export{max-height:240px;overflow-y:auto}
.au-done{margin:0}

/* the code tile */
.au-tile{display:flex;flex-direction:column;gap:10px;padding:14px 16px 10px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--card);min-width:0}
.au-tile-head{display:flex;align-items:center;gap:var(--s-l);min-width:0}
.au-chip{flex:none;height:22px;font-size:11.5px;color:var(--muted)}
.au-tile-body{display:flex;align-items:center;gap:var(--s-l)}
.au-code{flex:1;min-width:0;font-size:30px;line-height:1.15;font-weight:600;letter-spacing:.04em;color:var(--text);
  font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.au-tile[data-state="rest"] .au-code{color:var(--faint);letter-spacing:.12em}
.au-tile[data-state="warn"] .au-code{color:var(--warn)}
.au-clock{position:relative;flex:none;display:inline-grid;place-items:center;width:36px;height:36px;color:var(--text)}
.au-tile[data-state="warn"] .au-clock{color:var(--warn)}
.au-tile[data-state="rest"] .au-clock{color:var(--faint)}
.au-ring{position:absolute;inset:0}
.au-ring-run{transition:stroke-dashoffset .25s linear}
.au-left{position:relative;font-size:10.5px;font-variant-numeric:tabular-nums;color:inherit}
.au-copy{flex:none;gap:6px}
.au-copy svg{width:14px;height:14px}
.au-tile-foot{display:flex;align-items:center;gap:var(--s-s);min-height:24px;flex-wrap:wrap}
.au-said{flex:1;min-width:0;font-size:12px;color:var(--faint)}
.au-tile-foot .btn.quiet{height:26px;padding:0 10px;font-size:12px}
.au-rm{margin-left:auto;color:var(--muted)}

/* the panel */
.au-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-l)}
.au-cell{min-width:0}
.au-empty{padding:40px 16px}
.au-mfa{display:flex}
.au-mfa-in{max-width:160px;font-size:20px;letter-spacing:.2em;font-variant-numeric:tabular-nums;text-align:center}

/* a phone: the sheet takes the screen, the two ways stack */
@media (max-width:600px){
  .scrim:has(>.sheet.au-sheet){padding:8px}
  .sheet.au-sheet{max-height:calc(100dvh - 16px)}
  .sheet.au-sheet .sheet-head{padding:0 var(--s-xl)}
  .sheet.au-sheet .sheet-pane{padding:var(--s-xl)}
  .sheet.au-sheet .sheet-foot{padding:var(--s-l) var(--s-xl);flex-wrap:wrap}
  .au-ways{grid-template-columns:1fr}
  .au-way{min-height:0;flex-direction:row;align-items:center;flex-wrap:wrap;column-gap:12px}
  .au-way>svg{margin:0}
  .au-way-s{flex-basis:100%;padding-left:34px;margin-top:-4px}
  .au-grid{grid-template-columns:minmax(0,1fr)}
  .au-code{font-size:28px}
  .au-footnote{flex-basis:100%;order:2}
}

/* the Authenticator button beside Add login (chats-memory.js, Connect tools → Website logins) */
.au-headacts{display:flex;flex:none;flex-wrap:wrap;justify-content:flex-end;gap:8px}
@media (max-width:600px){
  .cn-head:has(>.au-headacts){flex-wrap:wrap}
  .cn-head>.au-headacts{width:100%;justify-content:flex-start}
}

/* p26 combined: a saved login's own code, under its row in Website logins (auth_fillLoginSlot; the slot is
   employee.js's div.cn-auth / div.emp-login-auth). One calm line, no card of its own: the row already says the site
   and the email, so the tile's head goes; the code at body size plus a little, the ring small, Copy and Show code quiet. */
:is(.cn-auth,.emp-login-auth)>.au-tile{flex-direction:row;flex-wrap:wrap;align-items:center;gap:2px 14px;padding:0;border:0;border-radius:0;
  background:none}
:is(.cn-auth,.emp-login-auth) .au-tile-head{display:none}
:is(.cn-auth,.emp-login-auth) .au-tile-body{gap:10px}
:is(.cn-auth,.emp-login-auth) .au-code{flex:none;font-size:17px;line-height:1.3;letter-spacing:.06em}
:is(.cn-auth,.emp-login-auth) .au-clock{width:30px;height:30px}
:is(.cn-auth,.emp-login-auth) .au-left{font-size:9.5px;letter-spacing:-.02em}
:is(.cn-auth,.emp-login-auth) .au-copy{height:26px;padding:0 10px;font-size:12px}
:is(.cn-auth,.emp-login-auth) .au-tile-foot{min-height:0;flex:1 1 auto}
:is(.cn-auth,.emp-login-auth) .au-tile-foot:not(:has(.au-said:not(:empty))):not(:has(.au-again:not([hidden]))){display:none}
.emp-login-auth{margin-top:8px}
/* in the chats look's row the slot starts the line under the row's text, beside Show password · Edit · Remove when
   there is room (chats.css gives it a line of its own): an empty full-width item ends the text's line */
.cn-login:has(>.cn-auth:not(:empty))::after{content:"";order:1;flex-basis:100%;height:0;margin-top:-4px}
.cn-login>.cn-auth{order:2;flex:1 1 auto;min-width:0;align-self:center}
.cn-login>.cn-loginacts{order:3}
/* "Add authenticator", for whoever may share one: a quiet line, no button shape */
.au-slotadd{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0;border:0;background:none;color:var(--faint);font:inherit;
  font-size:12.5px;cursor:pointer}
.au-slotadd>svg{width:14px;height:14px}
.au-slotadd:hover{color:var(--text)}
.au-slotadd:hover>span{text-decoration:underline;text-underline-offset:2px}
.au-slotadd:focus-visible{outline:2px solid var(--line2);outline-offset:2px;border-radius:4px}
