/* Couveuse v2 — page de connexion (servie par web.py : page_login / LOGIN_HTML).
   Même DA que le site : Carbon, lumière verte du haut, carte de verre, Volt unique. Aucun script. */
@font-face{font-family:"Inter Tight";src:url(/fonts/inter-tight-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jetbrains-mono-500-latin.woff2) format("woff2");font-weight:500;font-display:swap}
:root{--bg:#0A0A0F;--t1:#FAFAF7;--t2:#a1a1a6;--t3:#86868b;--volt:#A3FF12;--red:#ff453a;--ease:cubic-bezier(.22,1,.36,1);--spring:cubic-bezier(.34,1.4,.64,1);color-scheme:dark}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{background:transparent;color:var(--t1);font:400 17px/1.47 "Inter Tight",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;overflow-x:hidden}
body::before,body::after{content:"";position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(90px);background:var(--volt)}
body::before{width:62vw;height:46vw;left:19vw;top:-30vw;opacity:.18;animation:drift 28s ease-in-out infinite alternate}
body::after{width:30vw;height:26vw;left:4vw;top:-14vw;opacity:.09;animation:drift 34s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate(5vw,4vh) scale(1.08)}}
.box,form{position:relative;width:min(400px,100%);display:flex;flex-direction:column;gap:16px;padding:32px 28px 28px;border-radius:28px;
  background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.04),0 24px 60px rgba(0,0,0,.45);animation:pop .6s var(--spring)}
.box::before,form::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,255,255,.06) 38%,rgba(255,255,255,0) 60%,rgba(255,255,255,.24));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.logo{width:40px;height:40px;margin-bottom:4px}
.mono{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-weight:500;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--t2)}
h1{font-size:34px;font-weight:600;letter-spacing:-.03em;line-height:1.08;text-wrap:balance}
h1 i{font-style:normal;color:var(--volt)}
p{color:var(--t2);font-size:16px;line-height:1.5;text-wrap:pretty}
p b{color:var(--t1);font-weight:600}
.qui{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.qui a{display:flex;align-items:center;justify-content:center;height:64px;border-radius:18px;text-decoration:none;color:var(--t1);font-weight:600;font-size:18px;letter-spacing:-.015em;
  background:rgba(255,255,255,.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 0 1px rgba(255,255,255,.08);transition:background .25s,box-shadow .25s,transform .2s var(--spring)}
.qui a:hover{background:rgba(163,255,18,.1);box-shadow:inset 0 0 0 1.5px rgba(163,255,18,.55)}
.qui a:active{transform:scale(.97)}
input{height:52px;border-radius:14px;border:0;outline:0;background:rgba(0,0,0,.35);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);padding:0 16px;font:inherit;font-size:17px;color:var(--t1);width:100%;transition:box-shadow .2s}
input:focus{box-shadow:inset 0 0 0 1.5px var(--volt)}
input::placeholder{color:var(--t3)}
button{height:52px;border:0;border-radius:999px;background:var(--volt);color:var(--bg);font:inherit;font-weight:600;font-size:17px;cursor:pointer;margin-top:4px;transition:transform .3s var(--spring)}
button:hover{transform:scale(1.02)}
button:active{transform:scale(.97)}
.err{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;font-size:15px;line-height:1.4;color:var(--t1);background:rgba(255,69,58,.12);box-shadow:inset 0 0 0 1px rgba(255,69,58,.35)}
.err::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);flex:none;margin-top:6px}
.back{align-self:center;color:var(--t2);font-size:15px;text-decoration:none;padding:6px 10px;border-radius:10px}
.back:hover{color:var(--t1)}
:focus-visible{outline:2px solid var(--volt);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
