:root{--blue:#26B3FC;--blue-dim:rgba(38,179,252,.15);--deep:#0F385E;--deep-2:#0A2740;--surface:rgba(15,56,94,.55);--border:rgba(38,179,252,.18);--text:#E8F1FA;--muted:#7A9BB8;--danger:#FF5C7A;--ok:#3DDC97}
*{box-sizing:border-box;margin:0;padding:0}
body{min-height:100vh;display:grid;place-items:center;padding:24px;font-family:'Inter','Segoe UI',system-ui,sans-serif;color:var(--text);background:radial-gradient(1000px 700px at 20% 10%,rgba(38,179,252,.12),transparent 60%),radial-gradient(900px 600px at 85% 90%,rgba(15,56,94,.6),transparent 60%),var(--deep-2);overflow-x:hidden}
.glow{position:fixed;border-radius:50%;filter:blur(100px);opacity:.45;pointer-events:none;z-index:0}
.glow.a{width:500px;height:500px;background:#26B3FC;top:-150px;left:-120px}
.glow.b{width:450px;height:450px;background:#0F385E;bottom:-160px;right:-100px}
.card{position:relative;z-index:1;width:100%;max-width:430px;padding:36px 32px 28px;border-radius:16px;background:var(--surface);border:1px solid var(--border);backdrop-filter:blur(24px);box-shadow:0 30px 80px -20px rgba(0,0,0,.8),inset 0 1px 0 rgba(38,179,252,.08)}
.card.wide{max-width:660px}
.card.enter{animation:in .5s cubic-bezier(.2,.85,.3,1) both}
@keyframes in{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.logo{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.logo-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--blue-dim);border:1px solid rgba(38,179,252,.35);flex:none}
.logo-mark svg{width:22px;height:22px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.logo-text{font-size:17px;font-weight:700;letter-spacing:.3px}
.logo-text small{display:block;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin-top:2px}
h1{font-size:23px;font-weight:700;letter-spacing:-.4px;margin-bottom:6px}
.sub{font-size:14px;color:var(--muted);margin-bottom:22px;line-height:1.5}
.field{position:relative;margin-bottom:14px}
.field input{width:100%;padding:18px 14px 7px;font-size:15px;font-family:inherit;color:var(--text);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:10px;outline:none;transition:.18s}
.field input::placeholder{color:transparent}
.field input:focus{background:rgba(38,179,252,.07);border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-dim)}
.field label{position:absolute;left:15px;top:13px;font-size:15px;color:var(--muted);pointer-events:none;transition:.16s}
.field input:focus + label,.field input:not(:placeholder-shown) + label{top:5px;font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--blue)}
.field.invalid input{border-color:var(--danger);box-shadow:0 0 0 3px rgba(255,92,122,.12)}
.field.invalid label{color:var(--danger)}
.eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--muted);transition:.15s}
.eye:hover{color:var(--text);background:rgba(255,255,255,.06)}
.eye svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.has-eye input{padding-right:48px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 18px;font-size:13px}
.check{display:flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer;user-select:none}
.check input{appearance:none;width:17px;height:17px;border-radius:4px;border:1.5px solid rgba(38,179,252,.3);background:rgba(38,179,252,.06);cursor:pointer;position:relative;transition:.15s;flex:none}
.check input:checked{background:var(--blue);border-color:var(--blue)}
.check input:checked::after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:9px;border:solid var(--deep-2);border-width:0 2px 2px 0;transform:rotate(45deg)}
.link{color:var(--blue);text-decoration:none;font-weight:500;cursor:pointer}
.link:hover{color:#5FC9FF}
.captcha-box{margin:4px 0 18px;display:flex;justify-content:center;min-height:65px}
.btn{width:100%;height:52px;display:flex;align-items:center;justify-content:center;gap:10px;font-family:inherit;font-size:15px;font-weight:600;color:var(--deep-2);border:none;border-radius:10px;cursor:pointer;background:var(--blue);box-shadow:0 12px 30px -10px rgba(38,179,252,.7);transition:.15s}
.btn:hover:not(:disabled){filter:brightness(1.08)}
.btn:active:not(:disabled){transform:scale(.985)}
.btn:disabled{cursor:not-allowed;filter:saturate(.5) brightness(.8);opacity:.65}
.btn .spinner{display:none}
.btn.loading .spinner{display:block}
.spinner{width:18px;height:18px;border:2px solid rgba(15,56,94,.3);border-top-color:var(--deep-2);border-radius:50%;animation:spin .7s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.error,.lockout{display:none;align-items:flex-start;gap:9px;padding:11px 13px;margin-bottom:16px;font-size:13px;line-height:1.45;border-radius:10px}
.error{color:#FFB3C1;background:rgba(255,92,122,.08);border:1px solid rgba(255,92,122,.28)}
.lockout{color:#FFD166;background:rgba(255,209,102,.08);border:1px solid rgba(255,209,102,.3)}
.error.show,.lockout.show{display:flex}
.error svg,.lockout svg{width:16px;height:16px;flex:none;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.error svg{stroke:var(--danger)}.lockout svg{stroke:#FFD166}
.lockout strong{font-variant-numeric:tabular-nums}
.app-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.avatar{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%;font-weight:700;font-size:15px;color:var(--deep-2);background:var(--blue)}
.who{display:flex;align-items:center;gap:12px;min-width:0}
.who-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who-mail{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logout{flex:none;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;color:var(--muted);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:.16s}
.logout:hover{color:var(--danger);border-color:rgba(255,92,122,.4)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.stat{padding:16px 14px;border-radius:12px;background:rgba(38,179,252,.05);border:1px solid var(--border)}
.stat b{display:block;font-size:22px;font-weight:700;color:var(--blue)}
.stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}
.panel{padding:18px;border-radius:12px;background:rgba(38,179,252,.04);border:1px solid var(--border);margin-bottom:16px}
.panel h3{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.bars{display:flex;align-items:flex-end;gap:9px;height:96px}
.bars i{flex:1;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--blue),rgba(38,179,252,.15));animation:grow .8s cubic-bezier(.2,.85,.3,1) both;transform-origin:bottom}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.feed{list-style:none;display:flex;flex-direction:column;gap:12px}
.feed li{display:flex;align-items:center;gap:12px;font-size:13.5px;color:#C4D4E4}
.dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--ok)}
.dot.b{background:var(--blue)}.dot.c{background:#A78BFA}
.feed time{margin-left:auto;font-size:11.5px;color:var(--muted);flex:none}
@media (max-width:480px){.card{padding:28px 20px 22px}h1{font-size:20px}.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{grid-column:1/-1}}
