:root{
  color-scheme:dark;
  --mint:#5CD3B5;
  --bg:#06090C;
  --panel:#0E151A;
  --field:#111A20;
  --ink:#F0F8F5;
  --muted:#91A2A0;
  --line:#24313A;
  --danger:#F08B82;
  --display:'Space Grotesk',sans-serif;
  --body:'Inter',sans-serif;
  --mono:'JetBrains Mono',monospace;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{
  background:
    linear-gradient(rgba(92,211,181,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(92,211,181,.025) 1px,transparent 1px),
    var(--bg);
  background-size:48px 48px;
  color:var(--ink);
  font-family:var(--body);
}
.access-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
}
.access-panel{
  width:min(100%,410px);
  padding:34px;
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:0 32px 80px rgba(0,0,0,.45);
  clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);
}
.access-brand{display:flex;align-items:center;gap:11px;font:700 21px var(--display);margin-bottom:44px}
.access-brand img{width:40px;height:40px}
.access-brand span{color:var(--mint)}
.access-kicker{color:var(--mint);font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.12em}
h1{font:700 30px var(--display);margin:8px 0 25px;letter-spacing:0}
label{display:block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:8px}
.password-row{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line);background:var(--field)}
input{min-width:0;height:50px;padding:0 14px;border:0;outline:0;background:transparent;color:var(--ink);font:500 15px var(--body)}
.password-row:focus-within{border-color:var(--mint)}
#togglePassword{width:64px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);font:600 11px var(--body);cursor:pointer}
#togglePassword:hover{color:var(--ink)}
.access-error{min-height:20px;margin:8px 0 10px;color:var(--danger);font-size:12px}
.access-submit{width:100%;height:50px;border:0;background:var(--mint);color:#06251E;font:700 14px var(--display);cursor:pointer;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.access-submit:hover{background:#72DFC3}
.access-submit:disabled{opacity:.55;cursor:wait}
@media(max-width:480px){.access-panel{padding:26px 22px}.access-brand{margin-bottom:36px}}
