/* Shared public sign-in and password recovery, matching the workspace theme. */
.auth-page {
  --radius:9px;   /* barvy z palety (_design.html :root) */
  min-height:100vh; min-height:100dvh; display:flex; flex-direction:column;
  background:var(--paper); color:var(--ink);
}
.auth-page [hidden] { display:none !important; }
.auth-page :is(a,button,input):focus-visible { outline:2px solid var(--ateneo); outline-offset:4px; }
.auth-header, .auth-footer { width:100%; max-width:1440px; margin:0 auto; padding:30px 48px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.auth-brand { position:relative; display:inline-block; font:800 31px/1 var(--font-display); letter-spacing:-1.6px; color:var(--ink); text-decoration:none; }
.auth-brand:hover { text-decoration:none; }
.auth-brand > span { position:absolute; top:-9px; right:17px; color:var(--brand); font-size:18px; }
.auth-back { display:inline-flex; align-items:center; gap:9px; font-size:13px; color:var(--muted-on-paper); }
.auth-main { flex:1; display:flex; align-items:center; justify-content:center; padding:20px 48px 36px; }
.auth-shell { width:100%; max-width:1180px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); align-items:center; gap:64px; }
.auth-form-area { width:100%; max-width:460px; justify-self:center; min-width:0; }
.auth-page .auth-card { margin:0; padding:36px; border:1px solid var(--line-on-paper); border-radius:12px; background:#fff; box-shadow:0 4px 20px #18353704; }
.auth-eyebrow { margin:0 0 12px; color:var(--muted-on-paper); text-transform:uppercase; font-size:10px; font-weight:600; letter-spacing:1.3px; }
.auth-card h1 { font:700 38px/1.15 var(--font-display); letter-spacing:-1.2px; margin:0 0 12px; }
.auth-lead { margin:0 0 30px; color:var(--muted-on-paper); font-size:14px; line-height:1.7; }
.auth-page .auth-card label { display:block; font-size:13px; font-weight:500; text-transform:none; letter-spacing:0; color:var(--ink); margin:0 0 8px; }
.auth-page .auth-card input:not([type=hidden]) { width:100%; min-width:0; height:48px; padding:12px 14px; margin:0; border:1px solid var(--line-on-paper); border-radius:7px; background:#fff; color:var(--ink); font:400 16px var(--font-body); box-shadow:none; }
.auth-page .auth-card input:focus { outline:none; border-color:var(--ateneo); box-shadow:0 0 0 3px #cf3c1612; }
.auth-label-row { margin-top:22px; display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.auth-label-row a { font-size:12px; white-space:nowrap; }
.auth-password { position:relative; }
.auth-page .auth-password input { padding-right:50px !important; }
.auth-page .auth-password-toggle { position:absolute; right:5px; top:4px; display:grid; place-items:center; width:40px; height:40px; padding:0; margin:0; border:0; border-radius:5px; background:transparent; color:var(--muted-on-paper); box-shadow:none; cursor:pointer; }
.auth-page .auth-password-toggle:hover { background:#f3f5f4; color:var(--ink); }
.auth-eye-slash { display:none; }
.auth-password-toggle[aria-pressed=true] .auth-eye-slash { display:block; }
.auth-page .auth-submit { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; min-height:48px; margin:26px 0 0; padding:12px 18px; border:1px solid var(--ateneo); border-radius:7px; background:var(--ateneo); color:#fff; font:600 14px var(--font-body); box-shadow:none; cursor:pointer; }
.auth-page .auth-submit:hover { background:var(--ateneo-hover); border-color:var(--ateneo-hover); }
.auth-submit > span { font-size:19px; font-weight:400; }
.auth-form-back { display:inline-block; margin:0 0 28px; font-size:13px; color:var(--muted-on-paper); }
.auth-support { text-align:center; color:var(--muted-on-paper); font-size:12px; margin:22px 0 0; }
.auth-support a { margin-left:3px; color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.auth-message { padding:12px 14px; margin:0 0 22px; border:1px solid; border-radius:7px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.auth-message.error { color:var(--bad); background:var(--bad-bg); border-color:var(--bad-line); }
.auth-message.success { color:var(--good); background:var(--good-bg); border-color:var(--good-line); }
.auth-story { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-width:0; min-height:590px; padding:42px; border-radius:16px; overflow:hidden; isolation:isolate; background:radial-gradient(ellipse at 85% 70%,#39271e 0,transparent 55%),#14191a; color:#fff; }
.auth-story-label { display:flex; gap:9px; align-items:center; position:relative; z-index:1; margin:0 0 32px; font-size:12px; color:#d2d8d5; }
.auth-story-label > span { width:7px; height:7px; border-radius:50%; background:var(--brand); }
.auth-story h2 { position:relative; z-index:1; font:650 clamp(31px,3vw,43px)/1.13 var(--font-display); letter-spacing:-1px; margin:0 0 auto; max-width:430px; }
.auth-story h2 em { color:var(--brand); font-style:normal; }
.auth-wave { position:absolute; width:145%; max-width:none; height:240px; object-fit:cover; left:-22%; top:45%; mix-blend-mode:screen; mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent); pointer-events:none; }
.auth-story-foot { display:flex; align-items:flex-start; gap:14px; position:relative; z-index:1; margin-top:240px; }
.auth-story-rule { width:24px; height:1px; background:var(--brand); margin-top:10px; flex:none; }
.auth-story-foot p { margin:0; font-size:14px; line-height:1.65; color:#d2d8d5; }
.auth-footer { padding-top:14px; padding-bottom:24px; color:var(--muted-on-paper); font-size:11px; }
@media(max-width:1100px) {
  .auth-shell { gap:32px; }
  .auth-story { padding:32px; }
  .auth-page .auth-card { padding:30px; }
}
@media(max-width:850px) {
  .auth-story { display:none; }
  .auth-shell { grid-template-columns:minmax(0,1fr); }
  .auth-main { padding:32px 24px; }
  .auth-header, .auth-footer { padding-left:28px; padding-right:28px; }
}
@media(max-width:480px) {
  .auth-header { padding:26px 22px; }
  .auth-brand { font-size:28px; }
  .auth-brand > span { right:15px; }
  .auth-main { padding:24px 18px; }
  .auth-page .auth-card { padding:28px 22px; }
  .auth-card h1 { font-size:33px; }
  .auth-footer { padding:16px 22px 24px; flex-direction:column; align-items:center; gap:6px; }
}
