/* AUTH V2: warm editorial surfaces, isolated from the public site and CMS. */
body.tk-admin { background:#f6f1e8; color:#152330; }
body.tk-admin .site-header, body.tk-admin .site-footer, body.tk-admin .assistant-launcher, body.tk-admin .assistant-dialog, body.tk-admin .intro-overlay { display:none !important; }
body.tk-admin #app { padding:0; min-height:100svh; outline:none; }
body.tk-admin #app>.home-hero, body.tk-admin #app>.no-script-summary { display:none; }
body.tk-admin-auth { background:#f6f1e8; }
.auth-page { --auth-ink:#152330; --auth-muted:#62645f; --auth-line:#d7d2c8; --auth-teal:#37645e; min-height:100svh; display:flex; flex-direction:column; background:#f6f1e8; padding:34px clamp(24px,5vw,80px) 24px; color:var(--auth-ink); font:400 16px/1.6 var(--sans,Arial,sans-serif); }
.auth-page-top { display:flex; align-items:center; justify-content:space-between; gap:16px; flex:none; }
.auth-site-link { text-decoration:none; font-size:13px; display:inline-flex; align-items:center; gap:10px; min-height:44px; color:var(--auth-muted); }
.auth-site-link:hover { color:var(--auth-ink); }
.auth-language { display:flex; align-items:center; justify-content:center; gap:3px; flex:none; font:500 13px/1 var(--sans,Arial,sans-serif); }
.auth-language button { min-width:44px; min-height:44px; border:0; padding:0 8px; background:transparent; color:#686b65; cursor:pointer; letter-spacing:.035em; }
.auth-language button[aria-pressed=true] { color:#152330; font-weight:700; }
.auth-language>span { color:#b5b1a8; }
.auth-panel { width:min(100%,420px); margin:auto; padding:64px 0 66px; }
.auth-panel-wide { width:min(100%,480px); }
.auth-identity { text-align:center; margin-bottom:40px; }
.auth-monogram { display:inline-block; font:600 38px/1 var(--serif,Georgia,serif); letter-spacing:-.075em; color:#152330; }
.auth-identity .auth-monogram { border-bottom:1px solid #cec8bc; padding-bottom:21px; }
.auth-identity>p { margin:19px 0 0; font-size:13px; line-height:1.5; color:#535950; letter-spacing:.09em; }
.auth-stage { animation:auth-stage-in 260ms ease both; }
.auth-page h1, .security-dialog h2 { font:600 clamp(27px,2.3vw,34px)/1.3 var(--serif,Georgia,serif); letter-spacing:-.03em; margin:0 0 12px; color:#152330; }
.auth-copy { color:#62645f; margin:0 0 27px; font-size:16px; line-height:1.7; }
.auth-step-index { display:flex; align-items:center; gap:10px; font:500 12px/1.4 var(--mono,monospace); color:#797c74; margin-bottom:19px; }
.auth-step-index i { width:29px; height:1px; background:#c4c7bd; }
.auth-step-index span.is-active { color:#37645e; }
.auth-page form, .security-dialog form { display:flex; flex-direction:column; gap:0; }
.auth-field { margin:0 0 21px; min-width:0; }
.auth-field>label { display:block; font-size:14px; font-weight:600; line-height:1.4; margin-bottom:9px; }
.auth-text-input, .auth-password, .auth-code-wrap { background:#fcfaf5; border:1px solid #c9c9bd; border-radius:3px; min-height:56px; width:100%; transition:border-color .16s,box-shadow .16s; }
.auth-text-input, .auth-password input { color:#152330; font:400 16px/1.5 var(--sans,Arial,sans-serif); padding:14px 16px; }
.auth-password { display:flex; align-items:center; position:relative; }
.auth-password input { border:0; background:transparent; border-radius:3px; width:100%; min-width:0; height:54px; padding-right:56px; }
.auth-password button { position:absolute; right:3px; top:3px; display:grid; place-items:center; width:48px; height:48px; padding:0; border:0; background:transparent; color:#5b625a; cursor:pointer; border-radius:2px; }
.auth-password input:focus { outline:0; }
.auth-password:focus-within, .auth-code-wrap:focus-within, .auth-text-input:focus, .auth-secret:focus { outline:2px solid #37645e; outline-offset:3px; border-color:#37645e; }
.auth-page :focus-visible, .security-page :focus-visible, .security-dialog :focus-visible { outline:2px solid #37645e; outline-offset:4px; }
.auth-caps { color:#825c2c; font-size:13px; display:block; margin-top:8px; }
.auth-primary { min-height:56px; width:100%; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:14px 19px; border:1px solid #173f3a; border-radius:3px; background:#244f48; color:#fffdf7; font:600 15px/1.5 var(--sans,Arial,sans-serif); cursor:pointer; transition:background .16s; }
.auth-primary:hover { background:#173f3a; }
.auth-primary:disabled { cursor:wait; opacity:.65; }
.auth-button-arrow { font:400 23px/1 Arial,sans-serif; }
.auth-text-button { display:inline-flex; align-items:center; justify-content:flex-start; min-height:44px; border:0; padding:9px 0; background:transparent; color:#37645e; font:500 14px/1.6 var(--sans,Arial,sans-serif); cursor:pointer; text-decoration:none; }
.auth-text-button:hover { text-decoration:underline; text-underline-offset:4px; }
.auth-forgot { align-self:center; margin:5px 0 0; }
.auth-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:1px solid #c7cabe; border-radius:3px; padding:10px 16px; color:#234840; background:transparent; font:600 14px/1.5 var(--sans,Arial,sans-serif); cursor:pointer; text-decoration:none; }
.auth-secondary:hover { background:#eeeadf; border-color:#8faaa0; }
.auth-message { margin:12px 0 0; color:#37645e; font-size:14px; min-height:0; overflow-wrap:anywhere; }
.auth-message:empty { display:none; }
.auth-message.is-error, .auth-match.is-error { color:#94483c; }
.auth-notice { font-size:15px; background:#e4eadf; color:#2e5043; padding:14px 16px; border-left:2px solid #628170; margin:0 0 24px; }
.auth-page-footer { display:flex; align-items:center; justify-content:center; gap:12px; color:#70736a; font-size:12px; padding-top:20px; flex:none; }
.auth-footer-rule { width:20px; height:1px; background:#c6c6ba; }
.auth-checkbox { display:flex; align-items:flex-start; gap:11px; font-size:14px; line-height:1.55; min-height:44px; padding:5px 0; margin:0 0 6px; cursor:pointer; }
.auth-checkbox input { width:18px; height:18px; flex:none; margin:2px 0 0; accent-color:#37645e; }
.auth-small-note { color:#73766d; font-size:12px; margin:0 0 22px 29px; }
.auth-code-wrap { position:relative; min-height:65px; border:0; background:transparent; }
.auth-code-slots { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; height:65px; }
.auth-code-slots span { display:grid; place-items:center; border:1px solid #c9c9bd; border-radius:3px; background:#fcfaf5; font:500 24px/1 var(--mono,monospace); color:#92968c; }
.auth-code-slots span.has-value { color:#152330; }
.auth-code-wrap:focus-within { outline:0; }
.auth-code-wrap:focus-within .auth-code-slots span { border-color:#37645e; }
.auth-code-wrap input { position:absolute; inset:0; width:100%; height:100%; opacity:1; color:transparent; -webkit-text-fill-color:transparent; caret-color:transparent; background:transparent; border:0; border-radius:3px; font-size:16px; padding:0; letter-spacing:20px; outline:0!important; }
.auth-code-wrap:focus-within .auth-code-slots { outline:2px solid #37645e; outline-offset:4px; border-radius:3px; }
.auth-username-hidden { position:absolute; width:1px; height:1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); }
.auth-qr { display:flex; align-items:center; justify-content:center; width:208px; max-width:100%; min-height:208px; margin:4px auto 24px; background:#fff; border:1px solid #deded5; padding:10px; }
.auth-qr svg { width:100%; height:auto; display:block; shape-rendering:crispEdges; }
.auth-qr.is-unavailable { font-size:14px; text-align:center; color:#62645f; }
.auth-manual { border-top:1px solid #dadbd0; border-bottom:1px solid #dadbd0; margin-bottom:24px; padding:5px 0; }
.auth-manual summary { min-height:44px; cursor:pointer; font-size:14px; font-weight:500; color:#37645e; padding:10px 0; }
.auth-manual p { color:#64675f; font-size:14px; margin:5px 0 17px; }
.auth-secret-label { display:block; font-size:13px; margin-bottom:7px; font-weight:600; }
.auth-secret { display:block; width:100%; border:1px solid #c7cabe; border-radius:3px; padding:12px; color:#152330; background:#fcfaf5; font:400 14px/1.5 var(--mono,monospace); }
.auth-password-help { color:#686c62; font-size:14px; margin:-11px 0 10px; }
.auth-password-criteria { color:#75776e; font-size:13px; margin:0 0 24px; }
.auth-password-criteria.is-met { color:#37645e; }
.auth-match { color:#37645e; font-size:13px; margin:-9px 0 21px; }
.auth-match:empty { display:none; }
.auth-recovery-input { font-family:var(--mono,monospace); letter-spacing:.05em; }
.auth-recovery-codes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 20px; border:1px solid #d8dbcf; padding:21px 19px; background:#fbfaf5; margin:0 0 18px; }
.auth-recovery-codes code { color:#203b37; font:500 13px/1.75 var(--mono,monospace); overflow-wrap:anywhere; }
.auth-code-actions { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:20px; }
.auth-success { display:grid; place-items:center; text-align:center; }
.auth-success .auth-monogram { margin-bottom:24px; }
.auth-success h1 { font-size:25px; }
@keyframes auth-stage-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }

.security-page { --security-rule:#d7d8cc; max-width:1216px; margin:auto; padding:28px clamp(24px,5vw,64px) 24px; color:#152330; font:400 16px/1.6 var(--sans,Arial,sans-serif); }
.security-topbar { display:flex; align-items:center; justify-content:space-between; gap:25px; border-bottom:1px solid var(--security-rule); padding-bottom:22px; }
.security-brand { display:flex; align-items:center; gap:16px; text-decoration:none; font-size:13px; color:#535d51; }
.security-brand .auth-monogram { font-size:29px; }
.security-topbar>div { display:flex; align-items:center; gap:24px; }
.security-heading { padding:38px 0 35px; }
.security-heading>.auth-text-button { margin-bottom:19px; }
.auth-eyebrow { font:500 12px/1.4 var(--mono,monospace); text-transform:uppercase; letter-spacing:.1em; color:#6c7467; margin:0 0 11px; }
.security-heading h1 { font:600 clamp(30px,3.4vw,42px)/1.2 var(--serif,Georgia,serif); letter-spacing:-.04em; margin:0 0 13px; }
.security-heading>p:last-child { color:#6b6e64; margin:0; font-size:16px; }
.security-page>.auth-message { margin:0 0 27px; }
.security-section { display:grid; grid-template-columns:1fr 1.3fr; column-gap:65px; border-top:1px solid var(--security-rule); padding:34px 0 38px; }
.security-section-heading { display:flex; align-items:flex-start; gap:21px; }
.security-index { flex:none; font:500 12px/1.5 var(--mono,monospace); padding-top:5px; color:#727c6d; }
.security-section h2 { font:600 22px/1.4 var(--serif,Georgia,serif); letter-spacing:-.02em; margin:0 0 9px; }
.security-section-heading p { color:#6b6e64; font-size:16px; line-height:1.7; max-width:32ch; margin:0; }
.security-section-body { min-width:0; }
.security-section-body>.auth-secondary { margin-top:7px; }
.security-status { display:flex; align-items:center; gap:8px; font-size:14px; margin:3px 0 9px; color:#37645e; }
.security-status b { font-weight:600; }
.security-status-dot { width:6px; height:6px; background:#517661; border-radius:50%; }
.security-metadata { font-size:13px; color:#72796b; margin:0 0 14px; }
.security-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px 20px; }
.security-danger { color:#8e4d40; }
.security-records { list-style:none; margin:0 0 16px; padding:0; }
.security-records li { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; border-bottom:1px solid #e0e0d6; padding:13px 0 18px; }
.security-records li:first-child { padding-top:0; }
.security-records strong { font-weight:600; font-size:15px; line-height:1.6; display:block; }
.security-records p { margin:5px 0 0; font-size:13px; color:#73786b; line-height:1.8; }
.security-records button { flex:none; text-align:right; }
.security-current { display:block; color:#37645e; font:500 12px/1.6 var(--sans,Arial,sans-serif); margin-top:2px; }
.security-empty { color:#74796e; font-size:15px; }
.security-recovery-count { font-size:14px; margin:3px 0 17px; color:#6b7265; }
.security-recovery-count b { color:#254c43; font-size:20px; font-weight:500; margin-right:4px; }
.security-history { list-style:none; margin:0; padding:0; }
.security-history li { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; border-bottom:1px solid #e0e0d6; padding:14px 0; }
.security-history li:first-child { padding-top:0; }
.security-history strong { display:block; font-size:14px; font-weight:600; }
.security-history span, .security-history time { display:block; font-size:12px; line-height:1.7; color:#74796e; }
.security-history time { max-width:145px; text-align:right; padding-top:2px; }
.security-footer { border-top:1px solid var(--security-rule); display:flex; align-items:center; justify-content:space-between; padding:27px 0 0; font-size:12px; color:#73796c; }
.security-dialog { width:min(480px,calc(100vw - 36px)); max-height:calc(100svh - 36px); margin:auto; padding:27px 30px 30px; border:1px solid #d6d6cb; border-radius:5px; background:#f6f1e8; color:#152330; box-shadow:0 18px 80px #08111f26; overflow-y:auto; font:400 16px/1.6 var(--sans,Arial,sans-serif); }
.security-dialog::backdrop { background:#10212466; }
.security-dialog-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:23px; }
.security-dialog-header .auth-monogram { font-size:28px; }
.security-close { display:grid; place-items:center; background:transparent; border:0; color:#5c685b; width:44px; height:44px; font:400 27px/1 Arial,sans-serif; cursor:pointer; margin:-9px -9px -9px 0; }
.security-dialog h2 { font-size:27px; }
.security-dialog .auth-copy { font-size:16px; }
.security-dialog .auth-recovery-codes { gap:8px 12px; padding:16px; }
.security-dialog .auth-recovery-codes code { font-size:12px; }
/* Small labels retain reading contrast on the warm ivory surface. */
.auth-page-footer,.auth-small-note,.auth-password-help,.auth-password-criteria,.auth-step-index,.auth-eyebrow,.security-metadata,.security-index,.security-records p,.security-history span,.security-history time,.security-footer,.security-empty { color:#626b5e; }
.auth-password-criteria.is-met { color:#37645e; }
@media (max-width:767px) {
  .auth-page { padding:16px 24px 20px; }
  .auth-panel { padding:44px 0 48px; }
  .auth-identity { margin-bottom:34px; }
  .auth-page-footer { gap:9px; font-size:12px; }
  .auth-code-slots { gap:7px; height:59px; }
  .auth-code-wrap { min-height:59px; }
  .auth-code-slots span { font-size:23px; }
  .auth-recovery-codes { gap:8px 13px; padding:16px 12px; }
  .auth-recovery-codes code { font-size:12px; }
  .security-page { padding:20px 24px 25px; }
  .security-topbar { gap:15px; padding-bottom:19px; }
  .security-brand { gap:10px; }
  .security-brand>span:last-child { display:none; }
  .security-topbar>div { gap:10px; }
  .security-heading { padding:24px 0 31px; }
  .security-heading>.auth-text-button { margin-bottom:19px; }
  .security-section { grid-template-columns:1fr; gap:24px; padding:28px 0 32px; }
  .security-section-heading { gap:15px; }
  .security-section-heading p { max-width:none; }
  .security-section-body { padding-left:31px; }
  .security-actions { gap:8px 18px; }
  .security-history li { gap:12px; }
  .security-history time { max-width:90px; }
  .security-records li { gap:12px; }
  .security-records strong { font-size:14px; overflow-wrap:anywhere; }
  .security-records button { font-size:13px; }
  .security-dialog { padding:22px 23px 26px; }
  .security-dialog .auth-code-actions { flex-direction:column; }
}
@media (max-width:379px) {
  .auth-page { padding-right:20px; padding-left:20px; }
  .auth-page-footer>span:last-child { display:none; }
  .auth-page-footer .auth-footer-rule { display:none; }
  .auth-recovery-codes { grid-template-columns:1fr; }
  .security-page { padding-right:20px; padding-left:20px; }
  .security-section-body { padding-left:0; }
  .security-dialog .auth-recovery-codes { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .auth-stage { animation:none; } .auth-text-input,.auth-password,.auth-code-wrap,.auth-primary { transition:none; } }
