/* Sign-in page */
body{background:#fff}
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr)}
.auth .art{position:relative;overflow:hidden;background:linear-gradient(150deg,#FFA94D 0%,#FE8202 46%,#EC6A00 100%);color:var(--ink);padding:2.6rem 3rem;display:flex;flex-direction:column}
.auth .art:before,.auth .art:after,.auth .art .ring{content:"";position:absolute;border-radius:50%;border:2px solid rgba(255,255,255,.34);pointer-events:none}
.auth .art:before{width:880px;height:880px;left:-340px;bottom:-470px}
.auth .art:after{width:560px;height:560px;left:-180px;bottom:-310px;border-color:rgba(255,255,255,.26)}
.auth .art .ring{width:300px;height:300px;right:-110px;top:-110px;border-color:rgba(255,255,255,.3)}
.auth .art .brand{color:var(--ink);position:relative;z-index:2}
.auth .art .copy{position:relative;z-index:2;margin:auto 0;padding:2.5rem 0 2rem;max-width:30rem}
.auth .art h1{font-size:clamp(2.2rem,3.6vw,3.4rem);line-height:1.04;letter-spacing:-.035em;font-weight:800;margin:0 0 1rem}
.auth .art h1 em{font-style:normal;background:var(--lime);padding:0 .22em;border-radius:.3em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.auth .art p{font-size:1.1rem;font-weight:500;margin:0 0 2rem;max-width:26rem}
.auth .art .mini{display:grid;gap:.7rem;max-width:23rem}
.auth .art .mini div{display:flex;align-items:center;gap:.8rem;background:rgba(255,255,255,.94);border-radius:18px;padding:.75rem 1rem;font-weight:700;font-size:.93rem;box-shadow:0 14px 30px -16px rgba(120,50,0,.6)}
.auth .art .mini div:nth-child(2){margin-left:2.2rem}.auth .art .mini div:nth-child(3){margin-left:.8rem}
.auth .art .mini small{display:block;font-weight:600;color:var(--ink-2);font-size:.78rem}
.auth .art .legal{position:relative;z-index:2;font-size:.82rem;font-weight:600;opacity:.8}
.dot{position:absolute;border-radius:50%;z-index:1}
.dot.teal{width:78px;height:78px;background:var(--teal);right:22%;bottom:22%;animation:bob2 9s ease-in-out infinite}
.dot.purple{width:120px;height:120px;border:13px solid var(--purple);right:5%;bottom:-36px;animation:bob 10s ease-in-out infinite}
.dot.lime{width:44px;height:44px;border-radius:14px;background:var(--lime);right:8%;top:40%;transform:rotate(16deg);animation:bob 8s ease-in-out infinite}

.auth .panel{display:flex;flex-direction:column;justify-content:center;padding:2.2rem clamp(1.4rem,5vw,4.5rem);position:relative}
.auth .panel .top{position:absolute;top:1.5rem;left:clamp(1.4rem,5vw,4.5rem);right:clamp(1.4rem,5vw,4.5rem);display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.9rem;color:var(--ink-2)}
.auth .panel .top a:hover{color:var(--ink)}
.form{width:100%;max-width:27rem;margin:2.6rem auto 0}
.form h2{font-size:2.05rem;letter-spacing:-.03em;font-weight:800;margin:0 0 .35rem}
.form .sub{color:var(--ink-2);margin:0 0 1.5rem}
.field{margin-bottom:1rem}
.field label{display:block;font-weight:700;font-size:.86rem;margin-bottom:.4rem}
.inp{position:relative}
.inp > i.lead{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1.2rem;color:var(--ink-3);pointer-events:none}
.inp input{width:100%;height:3.3rem;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);padding:0 3rem 0 2.9rem;font:inherit;font-size:1rem;color:var(--ink);transition:border-color .15s,box-shadow .15s,background .15s}
.inp input::placeholder{color:#a6adba}
.inp input:hover{border-color:#cfd4dc}
.inp input:focus{outline:none;background:#fff;border-color:var(--orange);box-shadow:0 0 0 4px rgba(254,130,2,.18)}
.inp .eye{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:2.4rem;height:2.4rem;border:0;background:transparent;border-radius:50%;cursor:pointer;color:var(--ink-3);font-size:1.2rem;display:flex;align-items:center;justify-content:center}
.inp .eye:hover{background:#e9ebef;color:var(--ink)}
.hint{font-size:.78rem;color:var(--ink-2);margin-top:.35rem;min-height:1.1em}
.hint.warn{color:#9a5d00;font-weight:700}
.alert{display:none;gap:.7rem;align-items:flex-start;border-radius:16px;padding:.8rem 1rem;margin-bottom:1rem;font-size:.9rem;font-weight:600}
.alert.show{display:flex}
.alert i{font-size:1.25rem;margin-top:.05rem}
.alert.err{background:#FFF1EF;color:#9C1F16;border:1px solid #FFD0CA}
.alert.info{background:var(--teal-lt);color:#0b6663;border:1px solid #BDEFEC}
.form .btn{width:100%;height:3.3rem;font-size:1.02rem}
.spin{width:1.1rem;height:1.1rem;border-radius:50%;border:2.5px solid rgba(23,24,27,.25);border-top-color:var(--ink);animation:spin .7s linear infinite;display:none}
.btn.busy .spin{display:inline-block}.btn.busy .lbl{opacity:.8}
.step2{display:none}
.mfa-box{display:flex;gap:.6rem;justify-content:space-between}
.mfa-box input{width:100%;min-width:0;height:3.6rem;text-align:center;font:inherit;font-weight:800;font-size:1.5rem;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);padding:0}
.mfa-box input:focus{outline:none;background:#fff;border-color:var(--orange);box-shadow:0 0 0 4px rgba(254,130,2,.18)}
.who{display:flex;align-items:center;gap:.8rem;background:var(--surface);border-radius:18px;padding:.8rem 1rem;margin-bottom:1.2rem}
.who .av{width:2.6rem;height:2.6rem;background:var(--orange-lt);color:#8F3A00;font-size:.9rem}
.who b{display:block;line-height:1.2}.who small{color:var(--ink-2);font-weight:600}
.linkbtn{background:none;border:0;font:inherit;font-weight:700;color:var(--orange-deep);cursor:pointer;padding:.5rem 0;display:inline-flex;align-items:center;gap:.3rem}
.linkbtn:hover{text-decoration:underline}

.demo{margin-top:1.8rem;border-top:1px dashed var(--line);padding-top:1.4rem}
.demo h3{margin:0 0 .25rem;font-size:1rem;font-weight:800;display:flex;align-items:center;gap:.5rem}
.demo .note{font-size:.82rem;color:var(--ink-2);margin:0 0 .9rem}
.demo .note code{font-family:"IBM Plex Mono",monospace;background:var(--surface);padding:.1rem .4rem;border-radius:6px;color:var(--ink);font-size:.78rem}
.acc{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem}
.acc button{display:flex;align-items:center;gap:.65rem;text-align:left;font:inherit;border:1.5px solid var(--line);background:#fff;border-radius:16px;padding:.6rem .7rem;cursor:pointer;transition:border-color .15s,background .15s,transform .15s;min-width:0}
.acc button:hover{border-color:var(--orange);background:var(--orange-lt);transform:translateY(-1px)}
.acc .tile{width:2.2rem;height:2.2rem;font-size:1.15rem;border-radius:.75rem}
.acc button:last-child:nth-child(odd){grid-column:1/-1}
.acc b{display:block;font-size:.84rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc small{display:block;color:var(--ink-2);font-size:.72rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc .txt{min-width:0}
.acc .lock{margin-left:auto;color:var(--purple);font-size:1rem;flex:none}
.skeleton{height:3.5rem;border-radius:16px;background:linear-gradient(90deg,#f1f2f5,#e8eaee,#f1f2f5);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}

@media (max-width:980px){
  .auth{grid-template-columns:1fr}.auth .art{padding:1.4rem 1.4rem 1.6rem}.auth .art .copy{padding:1.6rem 0 .6rem;margin:0}.auth .art p{margin-bottom:0}.auth .art .mini,.auth .art .legal,.dot{display:none}
  .auth .art h1{font-size:2rem}.auth .panel{padding:1.4rem 1.4rem 3rem}.auth .panel .top{position:static;margin-bottom:.4rem}.auth .panel .top #clock{display:none}.form{margin-top:1rem}
}
@media (max-width:420px){.acc{grid-template-columns:1fr}}
