/* ================= Auth layout ================= */
.auth-body{background:var(--ipiz-bg);min-height:100vh}
.auth-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
.auth-aside{position:relative;overflow:hidden;padding:44px;display:flex;flex-direction:column;
  background:linear-gradient(160deg,var(--ipiz-green-dark),var(--ipiz-green-deep));color:#fff}
.auth-aside::before{content:"";position:absolute;inset:0;background-image:url('../img/pattern.svg');background-size:170px;opacity:.06}
.auth-aside__glow{position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(214,163,41,.28),transparent 65%);
  bottom:-120px;right:-80px;pointer-events:none}
.auth-aside__top,.auth-aside__body,.auth-aside__foot{position:relative;z-index:1}
.auth-aside__body{margin-top:auto;margin-bottom:auto;padding:36px 0;max-width:600px}
.auth-aside__title{color:#fff;font-size:2rem;line-height:1.15;max-width:16ch}
.auth-aside__desc{color:rgba(255,255,255,.82);font-size:1rem;max-width:42ch;margin-top:14px}
.auth-aside__points{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-direction:column;gap:12px}
.auth-aside__points li{position:relative;padding-left:30px;color:#e4f1ea;font-size:.94rem}
.auth-aside__points li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;
  background:var(--ipiz-gold);color:#3d2f05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233d2f05' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}
.auth-aside__foot{font-size:.82rem;color:rgba(255,255,255,.6);margin-top:24px}
.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px 30px;position:relative}
.auth-panel__inner{width:100%;max-width:500px}
.auth-panel__legal{text-align:center;margin-top:22px;font-size:.86rem}
/* Single back-to-home link, top of the form panel (shared across auth pages) */
.auth-back{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-head);font-weight:600;
  font-size:.85rem;color:var(--ipiz-green-dark);text-decoration:none;margin-bottom:14px}
.auth-back:hover{color:var(--ipiz-green)}
.auth-title{font-size:1.7rem;margin-bottom:6px}
.auth-desc{color:var(--ipiz-muted);margin-bottom:26px}
.auth-alt{text-align:center;margin-top:22px;font-size:.9rem;color:var(--ipiz-muted)}
.auth-mobile-brand{display:none;justify-content:center;margin-bottom:26px}
.pw-meter{height:6px;border-radius:999px;background:var(--ipiz-line);overflow:hidden;margin-top:8px}
.pw-meter > span{display:block;height:100%;width:0;transition:.25s;border-radius:999px;background:var(--ipiz-danger)}
.pw-rules{font-size:.8rem;color:var(--ipiz-muted);margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.pw-rules li{list-style:none}
.pw-rules li.ok{color:var(--ipiz-success)}
.pw-rules li::before{content:"○ ";}
.pw-rules li.ok::before{content:"● "}
.type-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 20px}
.type-choice label{cursor:pointer}
.type-choice input{position:absolute;opacity:0}
.type-choice__box{border:1.5px solid var(--ipiz-line);border-radius:16px;padding:20px;text-align:center;transition:.15s;height:100%}
.type-choice__box .ico-wrap{width:46px;height:46px;border-radius:13px;background:var(--ipiz-green-soft);color:var(--ipiz-green);display:grid;place-items:center;margin:0 auto 12px}
.type-choice__box h4{margin:0 0 4px}
.type-choice__box p{font-size:.82rem;color:var(--ipiz-muted);margin:0}
.type-choice input:checked + .type-choice__box{border-color:var(--ipiz-green);background:var(--ipiz-mint);box-shadow:0 0 0 4px var(--ipiz-green-soft)}
.type-choice input:focus-visible + .type-choice__box{outline:2px solid var(--ipiz-green);outline-offset:2px}
@media(max-width:900px){
  .auth-shell{grid-template-columns:1fr}
  .auth-aside{display:none}
  .auth-mobile-brand{display:flex}
  .auth-panel{padding:36px 22px;min-height:100vh}
}
