/* Kynsays — sign-in pages. Colours and fonts come from kynsays-theme.css */
*{box-sizing:border-box;}
/* Phones: the page stays locked to the screen width (no sideways drift or rubber-band panning),
   and text boxes use 16px text so iPhone Safari doesn't zoom in when one is tapped. */
html,body{margin:0;min-height:100%;width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior:none;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;}
body{
  min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:32px 16px;
  font-family:var(--kyn-font);color:var(--kyn-stage-text);
  background:
    radial-gradient(900px 480px at 85% -10%, rgb(var(--kyn-purple-rgb) / .07), transparent 60%),
    radial-gradient(900px 560px at 0% 110%, rgb(var(--kyn-blue-rgb) / .06), transparent 60%),
    var(--kyn-stage-bg);
  -webkit-font-smoothing:antialiased;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--kyn-stage-text);}
.brand img{width:34px;height:34px;filter:drop-shadow(0 4px 10px rgb(var(--kyn-purple-rgb) / .2));}
.brand span{font-weight:700;font-size:19px;letter-spacing:.14em;}
.brand b{background:var(--kyn-grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.card{
  width:100%;max-width:400px;padding:36px 32px;border-radius:22px;
  background:var(--kyn-stage-surface);border:1px solid var(--kyn-stage-border);
  box-shadow:0 1px 2px rgb(var(--kyn-stage-text-rgb) / .05),0 24px 60px -28px rgb(var(--kyn-stage-text-rgb) / .18);
}
.kicker{font-family:var(--kyn-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--kyn-accent-text);margin:0 0 10px;}
h1{font-size:23px;font-weight:600;letter-spacing:-.02em;margin:0 0 8px;color:var(--kyn-stage-text);}
p.sub{font-size:13.5px;line-height:1.55;color:var(--kyn-stage-muted);margin:0 0 24px;word-break:break-word;}
p.sub strong{color:var(--kyn-stage-text);font-weight:500;}
label{display:block;font-size:12px;font-weight:500;color:var(--kyn-stage-muted);margin:0 0 7px;}
input{
  width:100%;padding:12px 14px;margin:0 0 18px;border-radius:12px;font:inherit;font-size:16px;
  background:var(--kyn-stage-input);color:var(--kyn-stage-text);border:1.5px solid var(--kyn-stage-border);transition:border-color .15s,box-shadow .15s;
}
input:hover{border-color:var(--kyn-stage-border-strong);}
input:focus{outline:none;border-color:var(--kyn-purple);box-shadow:0 0 0 3px rgb(var(--kyn-purple-rgb) / .15);}
button{
  width:100%;padding:14px;border:none;border-radius:12px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--kyn-grad);
  box-shadow:0 8px 20px -10px rgb(var(--kyn-purple-rgb) / .45);transition:filter .15s,box-shadow .2s;
}
button:hover{filter:brightness(1.08);}
button:active{filter:brightness(.92);}
.error{
  background:rgb(var(--kyn-danger-rgb) / .12);border:1px solid rgb(var(--kyn-danger-rgb) / .4);color:var(--kyn-danger-text);
  border-radius:12px;padding:11px 14px;font-size:13px;line-height:1.45;margin:0 0 18px;
}
a.back{display:block;text-align:center;margin-top:16px;font-size:12.5px;color:var(--kyn-stage-muted);text-decoration:none;}
a.back:hover{color:var(--kyn-stage-text);}
.foot{font-size:12px;color:var(--kyn-stage-faint);text-align:center;}
@media(max-width:480px){
  body{justify-content:flex-start;padding:max(28px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));gap:22px;}
  .card{padding:28px 22px;border-radius:18px;}
}
