/* =========================================================
   PISD — Registration page
   ========================================================= */
.reg-hero{padding-bottom:150px}
.reg-wrap{margin-top:-90px;padding-bottom:110px;position:relative;z-index:3}
.reg{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}
.reg__side{position:sticky;top:100px;background:var(--navy);color:var(--ice);border-radius:var(--r-lg);padding:28px 24px;box-shadow:var(--shadow-lg)}
.stepper{list-style:none;display:flex;flex-direction:column;gap:6px;counter-reset:s}
.stepper li{display:flex;gap:14px;align-items:center;padding:10px;border-radius:14px;position:relative;transition:.3s}
.stepper li b{width:38px;height:38px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-family:'Poppins';border:1.5px solid var(--line-d);color:var(--muted-d);transition:.3s}
.stepper li span{font-family:'Poppins';font-weight:600;font-size:15px;line-height:1.3;color:var(--muted-d)}
.stepper li small{display:block;font-family:'Inter';font-weight:400;font-size:12.5px;color:var(--muted-d);opacity:.8}
.stepper li.active{background:rgba(139,217,74,.1)}
.stepper li.active b{background:var(--lime);border-color:var(--lime);color:var(--navy)}
.stepper li.active span{color:var(--ice)}
.stepper li.done b{background:transparent;border-color:var(--teal);color:var(--teal)}
.stepper li.done b::after{content:"\f00c";font-family:'Font Awesome 6 Free';font-weight:900;font-size:13px;position:absolute;margin:0}
.stepper li.done b{font-size:0}
.stepper li.done b::after{font-size:14px;position:static}
.stepper li.done span{color:var(--ice)}
.reg__help{margin-top:24px;padding-top:22px;border-top:1px solid var(--line-d);font-size:14px;color:var(--muted-d)}
.reg__help h4{color:var(--ice);font-size:15px;margin-bottom:10px;display:flex;gap:8px;align-items:center}
.reg__help h4 i{color:var(--lime)}
.reg__help ul{margin:0 0 14px 18px;list-style:disc}
.reg__help li{margin-bottom:4px}
.reg__help p{margin-top:6px}
.reg__help a{color:var(--lime);font-weight:600}

.reg__main{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow);border:1px solid var(--line);padding:38px 40px;min-width:0}
[hidden]{display:none!important}
.rstep{border:0;display:none;min-width:0;text-align:left}
.rstep.active{display:block;animation:stepIn .5s var(--ease)}
@keyframes stepIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.rstep legend{font-family:'Poppins';font-size:26px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}
.sub{font-size:16px;margin:28px 0 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sub i{width:34px;height:34px;border-radius:10px;background:var(--cream-2);color:var(--teal);display:grid;place-items:center;font-size:14px}
.sub small{font-family:'Inter';font-weight:400;font-size:13px;color:var(--muted)}
.sub em,.fld label em,.up em{color:#e0543c;font-style:normal}
.g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.fld{display:flex;flex-direction:column;gap:7px;min-width:0}
.fld.full{grid-column:1/-1}
.fld label{font-size:14px;font-weight:600}
.fld input,.fld select{border:1.5px solid var(--line);background:var(--cream);border-radius:12px;padding:13px 15px;outline:0;transition:.25s;width:100%;color:var(--ink);font-size:15px}
.fld input:focus,.fld select:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(43,181,160,.12)}
.fld .hint{font-size:12.5px;color:var(--muted)}
.fld .err-msg,.rows .err-msg,.uploads .err-msg{font-size:13px;color:#d64545;font-weight:500}
.fld.bad input,.fld.bad select{border-color:#e0543c;background:#fff6f5}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.rows{display:flex;flex-direction:column;gap:12px}
.row-card{display:grid;gap:12px;padding:16px;border:1.5px dashed var(--line);border-radius:16px;position:relative;background:#fcfdfc;animation:stepIn .4s var(--ease)}
.row-card.edu{grid-template-columns:1.1fr 1.6fr .7fr 40px;align-items:end}
.row-card.exp{grid-template-columns:repeat(5,minmax(0,1fr)) 40px;align-items:end}
.row-card.exp .fld:nth-child(1),.row-card.exp .fld:nth-child(2){grid-column:span 1}
.row-card .rm{width:40px;height:46px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:#d64545;cursor:pointer;transition:.2s}
.row-card .rm:hover{background:#fde8e8}
.add-row{margin-top:12px;border:1.5px dashed var(--teal);background:transparent;color:var(--teal);font-weight:600;border-radius:12px;padding:11px 16px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;transition:.2s}
.add-row:hover{background:rgba(43,181,160,.08)}
.rows.bad .row-card{border-color:#e0543c}

.note{margin-top:16px;padding:14px 16px;border-radius:12px;background:var(--cream);font-size:14px;display:flex;gap:10px;align-items:center}
.note i{color:var(--teal)}
.yn{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.yn__row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}
.yn__row:last-child{border-bottom:0}
.yn__row span.q{font-weight:500}
.seg{display:inline-flex;background:var(--cream);border-radius:40px;padding:4px;flex-shrink:0}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{padding:7px 18px;border-radius:30px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer;transition:.25s}
.seg input:checked+label{background:var(--navy);color:var(--lime)}
.seg input:focus-visible+label{outline:2px solid var(--teal)}

.uploads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.up{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:22px 14px;border:2px dashed var(--line);border-radius:18px;cursor:pointer;transition:.3s;position:relative;background:#fcfdfc;min-width:0}
.up:hover{border-color:var(--teal);background:rgba(43,181,160,.04)}
.up input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.up__prev{width:84px;height:100px;border-radius:12px;background:var(--cream-2);display:grid;place-items:center;font-size:28px;color:var(--teal);overflow:hidden}
.up__prev img{width:100%;height:100%;object-fit:cover}
.up__txt strong{display:block;font-size:14px}
.up__txt small{color:var(--muted);font-size:12.5px;word-break:break-all}
.up.has{border-style:solid;border-color:var(--lime);background:rgba(139,217,74,.06)}
.up.bad{border-color:#e0543c;background:#fff6f5}
.up .err-msg{font-size:12.5px;color:#d64545}

.summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;padding:18px;border-radius:16px;background:var(--cream);font-size:14px}
.summary div{min-width:0}
.summary dt{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.summary dd{font-weight:600;word-break:break-word}
.decl{flex-direction:row!important;gap:12px!important;align-items:flex-start;margin-top:20px;padding:16px;border-radius:14px;border:1.5px solid var(--line);cursor:pointer;font-size:14px;line-height:1.55}
.decl input{width:20px!important;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--navy);padding:0!important}
.decl.bad{border-color:#e0543c;background:#fff6f5}

.reg__nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}
.reg__count{color:var(--muted);font-size:14px;font-weight:500;margin-right:auto;margin-left:auto}
.btn--ghost-dark{background:#fff;border:1.5px solid var(--line);color:var(--navy);padding:14px 22px}
.btn--ghost-dark:hover{border-color:var(--navy)}
.btn.loading{pointer-events:none;opacity:.7}
.btn.loading i.arrow{animation:spin 1s linear infinite}

.reg-alert{padding:14px 18px;border-radius:14px;background:#fde8e8;color:#9b2c2c;font-weight:500;margin-bottom:22px;display:flex;gap:10px;align-items:flex-start}
.reg-alert.info{background:#e6f4f8;color:#21576b}

.reg-done{text-align:center;padding:30px 10px;animation:stepIn .6s var(--ease)}
.reg-done__ic{width:96px;height:96px;margin:0 auto 22px;border-radius:50%;background:var(--lime);color:var(--navy);display:grid;place-items:center;font-size:40px;box-shadow:0 0 0 14px rgba(139,217,74,.18);animation:pop .7s var(--ease)}
@keyframes pop{from{transform:scale(0) rotate(-90deg)}to{transform:none}}
.reg-done h2{font-size:32px;margin-bottom:10px}
.reg-done p{color:var(--muted);max-width:480px;margin:0 auto 18px}
.reg-done__no{display:inline-flex;flex-direction:column;padding:18px 34px;border-radius:18px;background:var(--navy);color:var(--ice);margin:8px 0 20px}
.reg-done__no small{color:var(--muted-d);font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.reg-done__no strong{font-family:'Poppins';font-size:28px;color:var(--lime);letter-spacing:.04em}
.reg-done__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:10px}

@media (max-width:1100px){
  .reg{grid-template-columns:1fr}
  .reg__side{position:static;padding:16px}
  .stepper{flex-direction:row;gap:4px}
  .stepper li{flex:1;flex-direction:column;text-align:center;gap:6px;padding:8px 4px}
  .stepper li span{font-size:12px}
  .stepper li small{display:none}
  .reg__help{display:none}
}
@media (max-width:700px){
  .reg-hero{padding-bottom:110px}
  .reg-wrap{margin-top:-70px;padding-bottom:70px}
  .reg__main{padding:24px 18px;border-radius:22px}
  .reg__side{border-radius:20px;padding:12px 8px}
  .stepper li b{width:32px;height:32px;font-size:14px}
  .stepper li span{font-size:11px}
  .rstep legend{font-size:22px}
  .g,.summary{grid-template-columns:1fr}
  .uploads{grid-template-columns:1fr}
  .up{flex-direction:row;text-align:left;padding:14px}
  .up__prev{width:56px;height:68px;font-size:22px;flex-shrink:0}
  .row-card.edu,.row-card.exp{grid-template-columns:1fr;padding:14px;padding-top:44px}
  .row-card .rm{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:10px}
  .yn__row{padding:12px}
  .yn__row span.q{font-size:14px}
  .seg label{padding:6px 14px}
  .reg__nav{flex-wrap:wrap}
  .reg__count{order:-1;width:100%;text-align:center}
  .reg__nav .btn{flex:1;justify-content:center}
  .reg-done h2{font-size:26px}
  .reg-done__no strong{font-size:22px}
}
