
:root{
  --navy:#0B2545;--navy-2:#08203D;--blue:#007080;--blue-deep:#00586A;--blue-tint:#E4F1F2;--blue-soft:#F2F8F9;
  --red:#BD002D;--red-tint:#FBE8ED;--mist:#F4F6FA;--mist-2:#E8EDF4;
  --ink:#0B2545;--slate:#46586E;--slate-2:#6A7A8E;--line:rgba(11,37,69,.12);--line-soft:rgba(11,37,69,.07);
  --amber:#A46200;--amber-tint:#FFF3DF;--hl:#FFF8E1;--hl-line:#EBC15A;--green:#167A4E;--green-tint:#E3F3EA;
  --sans:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;--r:10px;--r-lg:16px;--pad:clamp(16px,3.6vw,32px);
  --ease:cubic-bezier(.22,.61,.36,1);--shadow:0 1px 2px rgba(11,37,69,.04),0 12px 32px -22px rgba(11,37,69,.35)
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);color:var(--ink);background:var(--mist);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
.ico{width:18px;height:18px;flex:none;display:block}
.hide{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* shell */
.topline{height:3px;background:linear-gradient(90deg,var(--blue) 55%,var(--red))}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.top .in{max-width:1280px;margin:0 auto;padding:10px var(--pad);display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:46px}
.brand span{font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);border-left:1px solid var(--line);padding-left:12px;line-height:1.35}
.top .right{margin-left:auto;display:flex;align-items:center;gap:12px}
.bell{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--slate)}
.bell em{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-style:normal;font-size:.6rem;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.me{display:flex;align-items:center;gap:10px}
.av{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.72rem;flex:none}
.av.red{background:var(--red)}.av.grey{background:#9AA7B6}
.me .t b{display:block;font-size:.8rem;line-height:1.2}.me .t span{font-size:.68rem;color:var(--slate-2)}
.wrap{max-width:1280px;margin:0 auto;padding:24px var(--pad) 80px}

/* primitives */
.card{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.ch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line-soft)}
.ch h3{font-size:.95rem;font-weight:700}
.cb{padding:20px}
.eyebrow{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.muted{color:var(--slate-2);font-size:.8rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.8rem;font-weight:600;padding:10px 16px;border-radius:10px;white-space:nowrap;transition:.18s}
.btn .ico{width:16px;height:16px}
.bp{background:var(--blue);color:#fff}.bp:hover{background:var(--blue-deep)}
.bg{background:#fff;border:1px solid var(--line)}.bg:hover{border-color:var(--blue);color:var(--blue)}
.bt{color:var(--blue)}.bt:hover{text-decoration:underline}
.btn:disabled{opacity:.45;cursor:not-allowed}
.sm{padding:7px 11px;font-size:.74rem}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:100px;white-space:nowrap}
.cb1{background:var(--blue-tint);color:var(--blue)}.cg{background:var(--green-tint);color:var(--green)}.ca{background:var(--amber-tint);color:var(--amber)}.cx{background:var(--mist-2);color:var(--slate-2)}.cr{background:var(--red-tint);color:var(--red)}

/* forms */
.fg{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.f{min-width:0}
.f label{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;color:var(--slate);margin-bottom:6px}
.f label .lk{width:12px;height:12px;color:var(--slate-2)}
.f input,.f select{width:100%;height:44px;border:1.5px solid var(--line);border-radius:10px;padding:0 13px;background:#fff;font-size:.88rem;outline:none;transition:.18s}
.f input:focus,.f select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
.f input[readonly]{background:var(--mist);color:var(--slate);border-color:transparent}
.f.need input,.f.need select{background:var(--hl);border-color:var(--hl-line)}
.f.need input:focus,.f.need select:focus{background:#fff}
.f .err{display:none;font-size:.7rem;color:var(--red);margin-top:5px}
.f.bad input,.f.bad select{border-color:var(--red);background:#fff}
.f.bad .err{display:block}
.f.bad .hint{display:none}
.f .hint{font-size:.68rem;color:var(--slate-2);margin-top:5px}
.full{grid-column:1/-1}
.formerr{font-size:.76rem;color:var(--red);min-height:1.3em;margin-top:10px}

/* upload */
.drop{display:flex;align-items:center;gap:14px;border:1.5px dashed var(--line);border-radius:12px;padding:14px 16px;background:var(--mist);cursor:pointer;transition:.18s;position:relative}
.drop:hover,.drop.over{border-color:var(--blue);background:var(--blue-soft)}
.drop .di{width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;color:var(--blue);flex:none}
.drop .tt{flex:1;min-width:0}.drop b{display:block;font-size:.84rem}.drop span{display:block;font-size:.72rem;color:var(--slate-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop.ok{border-style:solid;border-color:rgba(22,122,78,.35);background:var(--green-tint)}
.drop.ok .di{color:var(--green)}
.drop.no{border-style:solid;border-color:var(--red);background:var(--red-tint)}
.drop.no span{color:var(--red);white-space:normal}
.drop.busy .di{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* wizard */
.wz-head{display:flex;gap:6px;padding:14px 20px;border-bottom:1px solid var(--line-soft);overflow-x:auto}
.wz-head .ws{display:flex;align-items:center;gap:8px;font-size:.76rem;font-weight:600;color:var(--slate-2);padding:6px 10px 6px 6px;border-radius:100px;white-space:nowrap}
.wz-head .ws i{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--mist-2);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:.7rem;background:#fff}
.wz-head .ws.on{background:var(--blue-tint);color:var(--blue)}.wz-head .ws.on i{border-color:var(--blue);color:var(--blue)}
.wz-head .ws.dn{color:var(--ink)}.wz-head .ws.dn i{background:var(--blue);border-color:var(--blue);color:#fff}
.wz-head .ws .ico{width:12px;height:12px}
.wz-head .sep{flex:0 0 18px;height:1.5px;background:var(--mist-2);align-self:center}
.wz-foot{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--line-soft);background:#FBFCFE;border-radius:0 0 var(--r-lg) var(--r-lg)}
.wz-foot .saved{font-size:.7rem;color:var(--slate-2);display:flex;align-items:center;gap:6px;margin-right:auto}
.wz-foot .saved .ico{width:14px;height:14px;color:var(--green)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.72rem;color:var(--slate);margin-bottom:16px}
.legend span{display:flex;align-items:center;gap:6px}.legend i{width:13px;height:13px;border-radius:4px}
.review{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;font-size:.82rem;border:1px solid var(--line-soft);border-radius:12px;padding:6px 16px;margin-bottom:18px}
.review div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.review dt{color:var(--slate-2)}.review dd{font-weight:600;text-align:right;word-break:break-word}
.rv-h{display:flex;justify-content:space-between;align-items:center;margin:4px 0 8px}
.rv-h b{font-size:.78rem}
.seg{display:inline-flex;background:var(--mist);border-radius:10px;padding:3px;margin-bottom:12px}
.seg button{font-size:.76rem;font-weight:600;padding:8px 12px;border-radius:8px;color:var(--slate)}
.seg button.on{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(11,37,69,.12)}
.sigpad{position:relative}
.sigpad canvas{width:100%;height:140px;border:1.5px dashed var(--hl-line);background:var(--hl);border-radius:12px;touch-action:none;display:block}
.sigpad .base{position:absolute;left:20px;right:20px;bottom:34px;border-bottom:1px solid rgba(164,98,0,.35);pointer-events:none}
.sigpad .ph{position:absolute;left:22px;bottom:12px;font-size:.66rem;color:var(--amber);pointer-events:none}
.sigdone{display:flex;align-items:center;gap:14px;border:1px solid rgba(22,122,78,.3);background:var(--green-tint);border-radius:12px;padding:10px 14px}
.sigdone img{height:56px;background:#fff;border-radius:6px;padding:2px 8px}
.decl{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--slate);margin:16px 0 4px}
.decl input{margin-top:3px;width:17px;height:17px;accent-color:var(--blue);flex:none}

/* candidate */
.c-hero{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.c-hero h1{font-size:1.5rem;letter-spacing:-.02em;line-height:1.2}
.c-hero .q{display:flex;align-items:center;gap:10px;margin-left:auto;background:#fff;border:1px solid var(--line-soft);border-radius:12px;padding:8px 14px 8px 8px;box-shadow:var(--shadow)}
.c-hero .q img{width:30px;height:42px;border-radius:2px;object-fit:cover;background:#DCE5F2}
.c-hero .q b{display:block;font-size:.8rem}.c-hero .q span{font-size:.68rem;color:var(--blue);font-weight:700}
.phases{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.ph{background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.ph .pn{font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-2)}
.ph b{display:block;font-size:.86rem;margin:2px 0 10px}
.ph .pb{height:5px;border-radius:5px;background:var(--mist-2);overflow:hidden}.ph .pb i{display:block;height:100%;background:var(--blue);border-radius:5px;transition:width .6s var(--ease)}
.ph .ps{font-size:.68rem;color:var(--slate-2);margin-top:7px}
.ph.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint),var(--shadow)}.ph.on .pn{color:var(--blue)}
.ph.dn .pb i{background:var(--green)}.ph.dn .ps{color:var(--green);font-weight:600}
.c-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.trk{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px 14px 14px;margin-bottom:20px}
.trk ol{list-style:none;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));position:relative}
.trk ol::before{content:"";position:absolute;left:6.25%;right:6.25%;top:15px;height:2px;background:var(--mist-2)}
.trk .fill{position:absolute;left:6.25%;top:15px;height:2px;background:var(--blue);transition:width .6s var(--ease)}
.trk li{text-align:center;position:relative;padding:0 4px}
.trk .n{width:32px;height:32px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid var(--mist-2);color:var(--slate-2);font-size:.74rem;font-weight:700;position:relative;z-index:1;transition:.3s}
.trk .n .ico{width:14px;height:14px}
.trk .dn .n{background:var(--blue);border-color:var(--blue);color:#fff}
.trk .on .n{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 5px var(--blue-tint)}
.trk b{display:block;font-size:.7rem;font-weight:600;line-height:1.3;color:var(--slate-2)}
.trk .dn b{color:var(--ink)}.trk .on b{color:var(--blue)}
.trk small{display:block;font-size:.6rem;color:var(--slate-2);margin-top:2px;min-height:1.2em}.trk .on small{color:var(--blue);font-weight:600}
.subs{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.subs span{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;padding:6px 10px;border-radius:100px;background:var(--mist);color:var(--slate-2)}
.subs span .ico{width:12px;height:12px}
.subs .dn{background:var(--green-tint);color:var(--green)}.subs .on{background:var(--blue-tint);color:var(--blue)}
.callout+.subs,.subs+.callout{margin-top:14px}
.sbar{display:flex;gap:4px;margin:16px 0 0}
.sbar i{flex:1;height:6px;border-radius:6px;background:var(--mist-2)}
.sbar i.dn{background:var(--blue)}.sbar i.on{background:var(--blue-tint);box-shadow:inset 0 0 0 1.5px var(--blue)}
.sbar-l{display:flex;justify-content:space-between;font-size:.66rem;color:var(--slate-2);margin-top:6px}
.wf li.stg{display:flex;justify-content:space-between;background:#FBFCFE;padding:9px 20px;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-2)}
.wf li.stg.dn{color:var(--green)}
.stack{display:grid;gap:20px}
.task{border-color:rgba(0,112,128,.35)}
.task .ch .eyebrow{display:block;margin-bottom:2px}
.wait{display:flex;gap:16px;align-items:flex-start}
.wait .wi{width:46px;height:46px;border-radius:12px;background:var(--blue-tint);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none}
.wait h3{font-size:1.02rem;margin-bottom:4px}
.done-box{text-align:center;padding:36px 20px}
.done-box .wi{width:64px;height:64px;border-radius:50%;background:var(--green-tint);color:var(--green);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.done-box .wi .ico{width:30px;height:30px}
.tl{list-style:none;padding:6px 20px 10px}
.tl li{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:7px 0;font-size:.78rem}
.tl .n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--mist-2);display:flex;align-items:center;justify-content:center;font-size:.64rem;font-weight:700;color:var(--slate-2);background:#fff}
.tl .dn .n{background:var(--blue);border-color:var(--blue);color:#fff}.tl .n .ico{width:12px;height:12px}
.tl .on .n{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 4px var(--blue-tint)}
.tl .on b{color:var(--blue)}.tl .up b{color:var(--slate-2);font-weight:500}
.tl b{font-weight:600;display:block}.tl time{display:block;font-size:.66rem;color:var(--slate-2)}
.tl .ph-l{grid-template-columns:1fr;padding:12px 0 2px;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-2)}
.who{font-size:.56rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:100px;white-space:nowrap}
.w-you{background:var(--amber-tint);color:var(--amber)}.w-ahsr{background:var(--blue-tint);color:var(--blue)}.w-inst{background:var(--mist-2);color:var(--slate-2)}
.docs .d{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line-soft);font-size:.8rem}
.docs .d:last-child{border-bottom:0}
.docs .di{width:32px;height:32px;border-radius:8px;background:var(--blue-tint);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none;font-size:.56rem;font-weight:800}
.docs .di.off{background:var(--mist);color:var(--slate-2)}
.docs .tt{flex:1;min-width:0}.docs b{display:block;font-weight:600}.docs span{display:block;color:var(--slate-2);font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msgs .m{display:flex;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line-soft);cursor:pointer}
.msgs .m:hover{background:var(--blue-soft)}
.msgs .m:last-child{border-bottom:0}
.msgs .mi{width:32px;height:32px;border-radius:50%;background:var(--blue-tint);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none}
.msgs .mi .ico{width:15px;height:15px}
.msgs b{display:block;font-size:.8rem;line-height:1.3}.msgs span{font-size:.68rem;color:var(--slate-2)}
.empty{padding:16px 20px;font-size:.78rem;color:var(--slate-2)}

/* auth */
.auth{max-width:440px;margin:32px auto}
.auth .cb{padding:30px}
.auth h2{font-size:1.4rem;letter-spacing:-.02em;margin:6px 0 4px}
.auth .f{margin-top:14px}
.meter{display:flex;gap:4px;margin-top:8px}.meter i{flex:1;height:4px;border-radius:4px;background:var(--mist-2)}
.meter.s1 i:nth-child(1){background:var(--red)}.meter.s2 i:nth-child(-n+2){background:var(--amber)}.meter.s3 i:nth-child(-n+3){background:var(--blue)}.meter.s4 i{background:var(--green)}
.rules{list-style:none;margin-top:10px;font-size:.72rem;color:var(--slate-2);display:grid;gap:4px}
.rules li{display:flex;gap:6px;align-items:center}.rules li .ico{width:13px;height:13px}.rules li.ok{color:var(--green)}
.pw{position:relative}.pw button{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.7rem;color:var(--blue);font-weight:600}
.callout{display:flex;gap:10px;background:var(--blue-soft);border:1px solid var(--blue-tint);border-radius:12px;padding:12px 14px;font-size:.76rem;color:var(--slate);margin-top:16px}
.callout .ico{color:var(--blue);margin-top:1px}

/* june */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.kpi{padding:16px 18px}
.kpi span{font-size:.68rem;color:var(--slate-2);font-weight:600}
.kpi b{display:block;font-size:1.7rem;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin-top:2px}
.kpi small{font-size:.66rem;font-weight:600;color:var(--amber)}
.j-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.j-head h1{font-size:1.5rem;letter-spacing:-.02em}
.tbl{width:100%;border-collapse:collapse;font-size:.8rem}
.tbl th{text-align:left;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-2);padding:10px 20px;border-bottom:1px solid var(--line-soft);background:#FBFCFE}
.tbl td{padding:12px 20px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.live{cursor:pointer}.tbl tr.live:hover td{background:var(--blue-soft)}
.tbl tr.sample td{color:var(--slate-2)}
.tbl .nm{display:flex;align-items:center;gap:10px}.tbl .nm b{display:block;color:var(--ink)}.tbl .nm span{font-size:.7rem;color:var(--slate-2)}
.minibar{display:flex;align-items:center;gap:8px}.minibar i{flex:1;max-width:90px;height:5px;border-radius:5px;background:var(--mist-2);position:relative;overflow:hidden}.minibar i em{position:absolute;inset:0 auto 0 0;background:var(--blue);border-radius:5px}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 12px;height:40px;color:var(--slate-2);font-size:.78rem;min-width:240px}
.search input{border:0;outline:0;flex:1;font-size:.8rem;background:transparent}
.back{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:600;color:var(--slate);margin-bottom:14px}
.back:hover{color:var(--blue)}
.d-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.d-head h1{font-size:1.4rem;letter-spacing:-.02em;line-height:1.2}
.d-head .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.next{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:linear-gradient(135deg,var(--navy),#0E3557 70%,var(--blue-deep));color:#fff;border-radius:var(--r-lg);padding:18px 20px;margin:18px 0}
.next .eyebrow{color:#7FD3DC}.next h3{font-size:1rem;margin-top:2px}.next p{font-size:.78rem;color:rgba(255,255,255,.72)}
.next .go{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.next .bp{background:#fff;color:var(--navy)}.next .bp:hover{background:var(--blue-tint)}
.next .bg{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-soft);padding:0 12px;overflow-x:auto}
.tabs button{font-size:.78rem;font-weight:600;color:var(--slate-2);padding:13px 12px;border-bottom:2px solid transparent;white-space:nowrap;display:flex;gap:6px;align-items:center}
.tabs button.on{color:var(--blue);border-color:var(--blue)}
.tabs button em{font-style:normal;font-size:.6rem;background:var(--mist-2);border-radius:100px;padding:1px 7px;color:var(--slate)}
.wf li{display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--line-soft);list-style:none;font-size:.8rem}
.wf li:last-child{border-bottom:0}
.wf .n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--mist-2);display:flex;align-items:center;justify-content:center;font-size:.64rem;font-weight:700;color:var(--slate-2)}
.wf .dn .n{background:var(--blue);border-color:var(--blue);color:#fff}.wf .n .ico{width:12px;height:12px}
.wf .on{background:var(--blue-soft)}.wf .on .n{border-color:var(--blue);color:var(--blue)}
.wf b{display:block;font-weight:600}.wf .s{font-size:.7rem;color:var(--slate-2)}
.wf .r{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;padding:6px 20px 14px}
.kv div{padding:10px 0;border-bottom:1px solid var(--line-soft)}
.kv dt{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-2)}
.kv dd{font-size:.84rem;font-weight:600;word-break:break-word}
.kv .sec{grid-column:1/-1;border:0;padding:16px 0 2px;font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.mlog .m{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 20px;border-bottom:1px solid var(--line-soft);font-size:.78rem;cursor:pointer}
.mlog .m:hover{background:var(--blue-soft)}
.mlog .m:last-child{border-bottom:0}
.mlog b{font-weight:600}.mlog span{font-size:.7rem;color:var(--slate-2)}
.act .a{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:9px 20px;border-bottom:1px solid var(--line-soft);font-size:.78rem}
.act .a:last-child{border-bottom:0}.act time{color:var(--slate-2);font-size:.7rem}

/* modal + toast */
.modal{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:16px}
.modal.on{display:flex}
.modal .bgx{position:absolute;inset:0;background:rgba(8,32,61,.55);backdrop-filter:blur(4px)}
.modal .box{position:relative;background:#fff;border-radius:var(--r-lg);width:min(720px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 40px 100px -30px rgba(0,0,0,.5);animation:pop .25s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.modal .mb{overflow-y:auto;padding:18px 20px}
.modal .mf{padding:14px 20px;border-top:1px solid var(--line-soft);display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.mail{font-size:.8rem}
.mail .row{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-soft)}
.mail .row b{color:var(--slate-2);font-weight:600;font-size:.72rem;padding-top:1px}
.mail .att{display:flex;flex-wrap:wrap;gap:6px}
.mail .att span{display:inline-flex;align-items:center;gap:5px;background:var(--mist);border:1px solid var(--line-soft);border-radius:7px;padding:3px 8px;font-size:.7rem}
.mail .att .ico{width:12px;height:12px}
.mail textarea{width:100%;min-height:240px;border:1.5px solid var(--line);border-radius:10px;padding:12px;font-size:.82rem;line-height:1.55;margin-top:12px;resize:vertical;outline:none}
.mail textarea:focus{border-color:var(--blue)}
.mail .body{white-space:pre-wrap;margin-top:12px;padding:14px;background:var(--mist);border-radius:10px;line-height:1.6}
.mail .auto{display:flex;gap:8px;align-items:center;font-size:.7rem;color:var(--green);font-weight:600;margin-top:10px}
.flag{font-size:.72rem;background:var(--amber-tint);color:var(--amber);border-radius:8px;padding:8px 10px;margin-top:10px}
.toast{position:fixed;left:50%;bottom:20px;z-index:90;background:var(--navy);color:#fff;border-radius:12px;padding:12px 16px;font-size:.8rem;max-width:min(420px,calc(100vw - 32px));display:flex;gap:10px;align-items:center;transform:translate(-50%,160%);transition:transform .4s var(--ease);box-shadow:0 20px 40px -16px rgba(8,32,61,.6)}
.toast .ico{color:#7FD3DC}
.toast.on{transform:translate(-50%,0)}

@media(max-width:1020px){.c-grid{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.kv{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  .trk{padding:14px 10px 10px;overflow-x:auto}.trk ol{min-width:620px}
}
.c-grid>*,.stack>*,.drop{min-width:0}
@media(max-width:700px){
  .wz-foot{flex-wrap:wrap}.wz-foot .saved{flex-basis:100%}

  .fg,.review{grid-template-columns:1fr}.phases{grid-template-columns:1fr 1fr}
  .brand span,.me .t{display:none}.c-hero .q{margin-left:0}
  .tbl th:nth-child(3),.tbl td:nth-child(3),.tbl th:nth-child(4),.tbl td:nth-child(4){display:none}
  .wf li{grid-template-columns:26px 1fr}.wf .r{grid-column:2;justify-content:flex-start}
  .kv{grid-template-columns:1fr}.act .a{grid-template-columns:1fr}
    .search{min-width:0;width:100%}
}

/* ================= v4 app shell ================= */
.top{position:relative}
.top .in{padding:7px 20px}
.brand img{height:38px}
.wrap{max-width:none;padding:0;margin:0;width:100%}
.toast{opacity:0;visibility:hidden;transform:translate(-50%,12px);transition:opacity .25s,transform .35s var(--ease),visibility .25s}
.toast.on{opacity:1;visibility:visible;transform:translate(-50%,0)}
.minibar i{flex:none;width:80px}
#app>.auth{margin:32px auto}
#app>.card.auth{width:calc(100% - 32px)}
.chip .ico{width:11px;height:11px}
.btn .ico:last-child:not(:first-child){margin-left:-2px}

.shell{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:calc(100vh - 100px)}
.side{background:var(--navy);color:#fff;padding:16px 14px 24px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.side .back{color:rgba(255,255,255,.7);margin:0 0 -2px 4px}.side .back:hover{color:#fff}
.sb{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px}
.sb h4{display:flex;justify-content:space-between;align-items:center;font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:8px}
.sb h4 em{font-style:normal;letter-spacing:0;font-size:.66rem;color:#7FD3DC}
.sb-h{display:block;font-size:1.05rem;margin-top:4px}
.sbp,.none{font-size:.72rem;color:rgba(255,255,255,.6);line-height:1.5}
.sb-q{display:flex;gap:10px;align-items:center}
.sb-q img{width:30px;height:42px;border-radius:3px;flex:none}
.sb-q span{display:block;font-size:.62rem;font-weight:700;color:#7FD3DC;letter-spacing:.06em}
.sb-q b{display:block;font-size:.8rem;line-height:1.3}
.ring{display:flex;gap:14px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.rg{--v:0;width:66px;height:66px;border-radius:50%;flex:none;background:conic-gradient(#7FD3DC calc(var(--v)*1%),rgba(255,255,255,.12) 0);display:grid;place-items:center}
.rg span{width:52px;height:52px;border-radius:50%;background:var(--navy);display:grid;place-items:center;font-weight:800;font-size:.86rem}
.ring small{display:block;font-size:.62rem;color:rgba(255,255,255,.55);font-weight:600}
.ring b{display:block;font-size:.84rem;line-height:1.3;margin:1px 0 6px}
.chk{list-style:none}
.chk li{display:flex;gap:10px;align-items:center;padding:7px 2px;font-size:.76rem;border-top:1px solid rgba(255,255,255,.06);cursor:pointer;border-radius:6px}
.chk li:first-child{border-top:0}
.chk li:hover{background:rgba(255,255,255,.05)}
.chk i{width:19px;height:19px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);display:grid;place-items:center;flex:none}
.chk i .ico{width:11px;height:11px}
.chk .ok i{background:#2BA57A;border-color:#2BA57A}
.chk small{margin-left:auto;font-size:.62rem;color:rgba(255,255,255,.45);white-space:nowrap}
.chk .ok small{color:#8FE0BE}
.kvs div{display:flex;justify-content:space-between;gap:12px;font-size:.73rem;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}
.kvs div:first-child{border-top:0}
.kvs dt{color:rgba(255,255,255,.5);flex:none}.kvs dd{text-align:right;min-width:0;overflow-wrap:anywhere}
.lnk{color:#7FD3DC;font-size:.72rem;font-weight:600;padding:0}.lnk:hover{text-decoration:underline}
.sb>.lnk{margin-top:8px}
.sbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;font-size:.74rem;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:9px;padding:9px}
.sbtn:hover{background:rgba(255,255,255,.08)}.sbtn .ico{width:15px;height:15px}
.sb .sbtn:first-child{margin-top:0}
.pp{display:flex;gap:10px;align-items:center;padding:7px 0;border-top:1px solid rgba(255,255,255,.06)}
.sb h4+.pp,.pp.big{border-top:0}
.pp .av{width:30px;height:30px;font-size:.62rem;background:rgba(127,211,220,.18);color:#7FD3DC}
.pp div{flex:1;min-width:0}.pp b{display:block;font-size:.76rem}.pp div span{display:block;font-size:.64rem;color:rgba(255,255,255,.5)}
.pp a{color:rgba(255,255,255,.6);padding:6px;border-radius:8px}.pp a:hover{color:#fff;background:rgba(255,255,255,.08)}
.pp a .ico{width:16px;height:16px}
.pp.big .av{width:42px;height:42px;font-size:.8rem;background:var(--blue);color:#fff}.pp.big b{font-size:.98rem}
.em{display:block;width:100%;text-align:left;padding:7px 2px;border-top:1px solid rgba(255,255,255,.06);border-radius:6px}
.sb h4+.em{border-top:0}
.em:hover{background:rgba(255,255,255,.05)}
.em b{display:block;font-size:.74rem;font-weight:600;line-height:1.35;color:#fff}.em span{font-size:.62rem;color:rgba(255,255,255,.45)}
.sb-tog{display:none}
.snav{display:grid;gap:2px}
.snav button{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;font-size:.8rem;font-weight:600;color:rgba(255,255,255,.75)}
.snav button:hover{background:rgba(255,255,255,.06);color:#fff}
.snav button.on{background:#fff;color:var(--navy)}
.snav em{font-style:normal;font-size:.66rem;background:rgba(255,255,255,.12);border-radius:100px;padding:1px 8px}
.snav .on em{background:var(--blue-tint);color:var(--blue)}

.main{min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px 22px 22px}
.m-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}
.m-head h1{font-size:1.4rem;letter-spacing:-.02em}
.main .next{margin:0;padding:14px 20px}

.stepbar{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;background:#fff;border:1px solid var(--line-soft);border-radius:14px;padding:5px;box-shadow:var(--shadow);flex:none}
.stepbar button{position:relative;display:flex;gap:9px;align-items:center;text-align:left;padding:9px 10px 13px;border-radius:10px;min-width:0;transition:background .15s}
.stepbar button:hover{background:var(--mist)}
.stepbar .n{width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:.68rem;font-weight:700;border:1.5px solid var(--mist-2);color:var(--slate-2);background:#fff}
.stepbar .n .ico{width:13px;height:13px}
.stepbar .t{min-width:0}
.stepbar small{display:block;font-size:.58rem;font-weight:600;color:var(--slate-2);letter-spacing:.02em}
.stepbar b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.74rem;font-weight:600;line-height:1.2}
.stepbar button::after{content:"";position:absolute;left:10px;right:10px;bottom:5px;height:3px;border-radius:3px;background:var(--mist-2)}
.stepbar .dn .n{background:var(--blue);border-color:var(--blue);color:#fff}
.stepbar .dn::after{background:var(--blue)}
.stepbar .on .n{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 4px var(--blue-tint)}
.stepbar .on::after{background:linear-gradient(90deg,var(--blue) 50%,var(--mist-2) 50%)}
.stepbar .on small{color:var(--blue)}
.stepbar .lk b{color:var(--slate-2);font-weight:500}
.stepbar .sel{background:var(--blue-soft);box-shadow:inset 0 0 0 1.5px var(--blue)}
.stepbar .sel:hover{background:var(--blue-soft)}

.panel{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.panel>.tabs{flex:none}
.p-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:16px 22px;border-bottom:1px solid var(--line-soft);flex:none}
.p-head h2{font-size:1.15rem;letter-spacing:-.015em;line-height:1.25;margin-top:2px}
.p-head .st{margin-left:auto;display:flex;gap:8px;align-items:center}
.p-body{position:relative;padding:20px 22px;min-width:0}
.p-body.flush{padding:0;overflow-x:auto}
.p-foot{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 22px;border-top:1px solid var(--line-soft);background:#FBFCFE;border-radius:0 0 var(--r-lg) var(--r-lg)}
.p-foot .sp{margin-right:auto}
.p-foot .saved{font-size:.7rem;color:var(--slate-2);display:flex;align-items:center;gap:6px}
.p-foot .saved .ico{width:14px;height:14px;color:var(--green)}
.p-body>.wz-head{padding:0 0 14px;margin:0 0 18px}

.split{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:26px;align-items:start}
.sp-m{min-width:0}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.tip{background:var(--mist);border-radius:14px;padding:16px 18px;font-size:.8rem;color:var(--slate)}
.tip p{margin:6px 0 10px;line-height:1.55}
.tip dl div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:.74rem}
.tip dt{color:var(--slate-2)}.tip dd{font-weight:600;color:var(--ink);text-align:right}
.tip .legend{flex-direction:column;gap:6px;margin:0;align-items:flex-end}
.bx{border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;margin-bottom:16px}
.bx .d{padding:11px 14px}
.ss{list-style:none;border:1px solid var(--line-soft);border-radius:12px;margin-top:16px;overflow:hidden}
.ss li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line-soft);font-size:.8rem}
.ss li:first-child{border-top:0}
.ss .n{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--mist-2);display:grid;place-items:center}
.ss .n .ico{width:12px;height:12px}
.ss .dn .n{background:var(--blue);border-color:var(--blue);color:#fff}
.ss .on{background:var(--blue-soft)}.ss .on .n{border-color:var(--blue);color:var(--blue)}
.ss b{display:block;font-weight:600}.ss span{font-size:.7rem;color:var(--slate-2)}
.ss time{font-size:.68rem;color:var(--slate-2);white-space:nowrap}
.rel{margin-top:16px;display:grid;gap:6px}
.rel .eyebrow{margin-bottom:2px}
.relm{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid var(--line-soft);border-radius:10px;padding:9px 12px;font-size:.78rem}
.relm:hover{border-color:var(--blue);background:var(--blue-soft)}
.relm .ico{width:16px;height:16px;color:var(--blue)}
.relm b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.relm span{font-size:.66rem;color:var(--slate-2)}
.locked{text-align:center;padding:28px 10px}
.locked .wi{width:56px;height:56px;border-radius:50%;background:var(--mist);color:var(--slate-2);display:grid;place-items:center;margin:0 auto 12px}
.locked h3{font-size:1rem;margin-bottom:4px}.locked p{max-width:44ch;margin:0 auto}
.wf li.stg{scroll-margin-top:0}

/* locked, no-page-scroll layout on desktop */
@media (min-width:1021px) and (min-height:620px){
  .toast{bottom:88px;left:calc(50% + 150px)}
  html,body{height:100%}
  body{display:flex;flex-direction:column;overflow:hidden}
  .topline,.top{flex:none}
  #app{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
  .shell{flex:1;min-height:0}
  .side{overflow-y:auto;min-height:0}
  .main{min-height:0;overflow:hidden}
  .panel{flex:1;min-height:0;overflow:hidden}
  .p-body{flex:1;min-height:0;overflow-y:auto}
}
@media (min-width:1021px) and (max-width:1760px){ .stepbar button{flex-direction:column;align-items:flex-start;gap:5px;padding:8px 9px 13px} .stepbar .n{width:24px;height:24px} .stepbar b{white-space:nowrap;text-overflow:ellipsis;display:block} }
@media (max-width:1180px){ .split{grid-template-columns:minmax(0,1fr) 250px} }
@media (max-width:1020px){
  .shell{display:block;min-height:0}
  .side{padding:14px var(--pad)}
  .side .more{display:none}
  .side.open .more{display:block}
  .sb-tog{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;font-size:.72rem;font-weight:600;color:#7FD3DC;border:1px solid rgba(127,211,220,.3);border-radius:9px;padding:9px}
  .sb-tog .ico{width:14px;height:14px;transform:rotate(90deg);transition:.2s}
  .side.open .sb-tog .ico{transform:rotate(-90deg)}
  .main{padding:14px var(--pad) 24px}
  .stepbar{display:flex;overflow-x:auto;scrollbar-width:none}
  .stepbar::-webkit-scrollbar{display:none}
  .stepbar button{flex:0 0 150px}
  .stepbar small{display:block}
  .split,.two{grid-template-columns:minmax(0,1fr)}
  .p-foot{position:sticky;bottom:0;z-index:5}
  .toast{bottom:auto;top:12px;transform:translate(-50%,-12px)}
  .snav{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
@media (max-width:700px){
  .p-head,.p-body,.p-foot{padding-left:16px;padding-right:16px}
  .p-head .st{display:none}
  .p-foot .saved{display:none}
  .p-foot .btn{flex:1 1 auto}
  .p-foot .sp{display:none}
  .ss li{grid-template-columns:24px minmax(0,1fr)}.ss .r{grid-column:2}
  .tbl th:nth-child(2),.tbl td:nth-child(2){display:none}
  .tbl th,.tbl td{padding-left:14px;padding-right:14px}
  .m-head .search{width:100%}
}

/* ================= v5 density: every step fits one screen ================= */
.side{gap:10px;padding:14px 12px 16px}
.sb{padding:12px 13px}
.sb h4{margin-bottom:5px}
.rg{width:56px;height:56px}.rg span{width:44px;height:44px;font-size:.78rem}
.ring{margin-top:10px;padding-top:10px;gap:12px}
.ring b{margin-bottom:5px}
.chk li{padding:5px 2px}
.kvs div{padding:5px 0}
.pp{padding:5px 0}
.em{padding:5px 2px}
.main{gap:12px;padding:16px 20px 18px}
.stepbar button{padding:8px 10px 12px}
.p-head{padding:13px 22px}
.p-head h2{font-size:1.06rem}
.p-body{padding:18px 22px}
.p-foot{padding:10px 22px}
.p-head .wz-head{border:0;padding:0;margin:0;overflow:visible;gap:4px}
.p-head .wz-head .ws{font-size:.72rem}
.f input,.f select{height:40px}
.f label{margin-bottom:4px}
.fg{gap:12px 16px}
.f .hint{margin-top:3px}
.review{font-size:.8rem;padding:4px 14px;margin-bottom:14px}
.review div{padding:6px 0}
.rv-h{margin:0 0 6px}
.sigpad canvas{height:120px}
.decl{font-size:.76rem}
.wait .wi{width:42px;height:42px}
.ss{margin-top:14px}.ss li{padding:9px 14px}
.rel{margin-top:14px}
.done-box{padding:18px 20px 22px}
.stg-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line-soft)}
.stg-h b{display:block;font-size:1rem;margin-top:2px}
.stg-rel{padding:0 20px 18px}
.mlog .m{padding:10px 20px}
.act .a{padding:8px 20px}
@media (min-width:1200px){
  .p-body .fg{grid-template-columns:repeat(3,minmax(0,1fr))}
  .p-body .fg .full{grid-column:span 2}
  .kv{grid-template-columns:repeat(4,minmax(0,1fr))}
}

.ppl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.pc{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;padding:8px 4px;border-radius:10px;color:#fff;text-decoration:none;background:rgba(255,255,255,.04)}
.pc:hover{background:rgba(255,255,255,.09)}
.pc .av{width:30px;height:30px;font-size:.6rem;background:rgba(127,211,220,.18);color:#7FD3DC}
.pc b{font-size:.72rem;line-height:1.2}.pc small{font-size:.58rem;color:rgba(255,255,255,.5);line-height:1.2}
.inbox{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px;border-radius:10px;color:#fff}
.inbox:hover{background:rgba(255,255,255,.06)}
.inbox>.ico{color:#7FD3DC;width:18px;height:18px}
.inbox span{flex:1;min-width:0}.inbox b{display:block;font-size:.76rem}.inbox small{display:block;font-size:.64rem;color:rgba(255,255,255,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox em{font-style:normal;font-size:.66rem;font-weight:700;background:var(--red);border-radius:100px;padding:1px 8px}
.lnks{display:flex;justify-content:space-between;gap:10px;margin-top:6px}
@media (min-width:1200px){
  .mlog,.act{display:grid;grid-template-columns:1fr 1fr}
  .mlog .m:nth-child(odd),.act .a:nth-child(odd){border-right:1px solid var(--line-soft)}
  .mlog .m:nth-last-child(2):nth-child(odd),.act .a:nth-last-child(2):nth-child(odd){border-bottom:0}
}

.side{gap:8px}.sb{padding:11px 12px}.sb-q img{width:26px;height:36px}

.stepbar button{gap:8px}.stepbar b{font-size:.72rem;letter-spacing:-.01em}

/* ================= theme additions ================= */
body.ahsr-portal{margin:0}
.btn.wide{width:100%;height:46px;margin-top:18px}
a.btn{text-decoration:none;color:inherit}a.btn.bp{color:#fff}
.note{border-radius:10px;padding:10px 12px;font-size:.78rem;margin:14px 0 0}
.note.ok{background:var(--green-tint);color:var(--green)}.note.bad{background:var(--red-tint);color:var(--red)}
.flash{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:60;min-width:280px;animation:fl 5s forwards}
@keyframes fl{0%,85%{opacity:1}100%{opacity:0;visibility:hidden}}
.forgot{margin-top:16px;font-size:.78rem}.forgot summary{cursor:pointer;color:var(--blue);font-weight:600}
.callout a{color:var(--blue)}
.loading{display:flex;align-items:center;justify-content:center;gap:12px;flex:1;min-height:50vh;color:var(--slate-2);font-size:.85rem}
.loading span{width:18px;height:18px;border:2px solid var(--mist-2);border-top-color:var(--blue);border-radius:50%;animation:spin 1s linear infinite}
.ico.spin{animation:spin 1s linear infinite}
.toast.bad{background:var(--red)}.toast.bad .ico{color:#fff}
.top .right a.btn{display:inline-flex}
#app>.card.auth{align-self:center}

/* ================= v1.1 — alive & clearer ================= */
@property --v{syntax:'<number>';inherits:false;initial-value:0}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes btnGradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes btnShine{0%,10%{background-position:-250% 0;opacity:0}22%{opacity:1}38%{background-position:250% 0;opacity:0}100%{opacity:0;background-position:-250% 0}}
@keyframes dotPulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes ringPulse{0%{box-shadow:0 0 0 0 rgba(0,112,128,.35)}70%{box-shadow:0 0 0 12px rgba(0,112,128,0)}100%{box-shadow:0 0 0 0 rgba(0,112,128,0)}}
@keyframes barFlow{from{background-position:0 0}to{background-position:40px 0}}
@keyframes pop{0%{transform:scale(.98)}50%{transform:scale(1.015)}100%{transform:none}}

/* buttons — same shine and glow as the main website */
.btn{position:relative;overflow:hidden;transition:transform .32s var(--ease),box-shadow .4s var(--ease),background .3s,border-color .3s,color .3s}
.btn.bp{background:linear-gradient(135deg,#0a8a9c 0%,#007080 50%,#0a8a9c 100%);background-size:200% 200%;animation:btnGradShift 4s ease infinite;color:#fff}
.btn.bp::before,.btn.bl::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);background-size:200% 100%;animation:btnShine 5s ease-in-out infinite;pointer-events:none;border-radius:inherit}
.btn.bp:hover:not(:disabled){background:linear-gradient(135deg,#0A8A9C 0%,#00586A 50%,#0A8A9C 100%);background-size:200% 200%;box-shadow:0 0 0 4px rgba(0,112,128,.22),0 8px 26px -8px rgba(0,112,128,.65),0 2px 8px -2px rgba(0,112,128,.4);transform:translateY(-2px)}
.btn.bp:hover::before{animation-duration:1.8s}
.btn.bp:active{transform:none;box-shadow:0 0 0 3px rgba(0,112,128,.3)}
.btn.bp .ico:last-child{transition:transform .32s var(--ease)}.btn.bp:hover .ico:last-child{transform:translateX(3px)}
.btn.bg:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px -10px rgba(11,37,69,.4)}
.btn.bl{background:#fff;color:var(--blue);border:1.5px solid rgba(0,112,128,.25)}
.btn.bl::before{background:linear-gradient(105deg,transparent 30%,rgba(0,112,128,.12) 50%,transparent 70%);background-size:200% 100%;animation-duration:6s}
.btn.bl:hover{background:var(--blue-tint);border-color:var(--blue);transform:translateY(-2px);box-shadow:0 0 0 3px rgba(0,112,128,.15),0 6px 20px -8px rgba(0,112,128,.35)}
.next .btn.bp{background:#fff;color:var(--navy);animation:none}.next .btn.bp::before{background:linear-gradient(105deg,transparent 30%,rgba(0,112,128,.18) 50%,transparent 70%);background-size:200% 100%}
.next .btn.bp:hover{background:var(--blue-tint)}
.btn.busy{pointer-events:none;opacity:.85}

/* status pills (replace the old chunky chips) */
.pill{display:inline-flex;align-items:center;gap:7px;font-size:.7rem;font-weight:600;letter-spacing:.01em;padding:5px 11px 5px 9px;border-radius:100px;white-space:nowrap;border:1px solid transparent}
.pill i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.pill .ico{width:12px;height:12px}
.p-act{color:#A0570A;background:#FFF6E8;border-color:#F6DDB4}.p-act i{animation:dotPulse 1.8s infinite}
.p-wait{color:var(--blue);background:var(--blue-soft);border-color:var(--blue-tint)}
.p-inst{color:#5A6B80;background:var(--mist);border-color:var(--mist-2)}
.p-done{color:var(--green);background:var(--green-tint);border-color:rgba(22,122,78,.18)}
.p-up{color:var(--slate-2);background:#fff;border-color:var(--line)}.p-up i{display:none}
.side .pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}
.side .p-act{color:#FFD9A3}.side .p-done{color:#8FE0BE}.side .p-wait{color:#9EE6EE}

/* stepbar with registration as step 0 */
.stepbar{grid-template-columns:minmax(0,.85fr) repeat(8,minmax(0,1fr))}
.stepbar .s0 .n .ico{width:13px;height:13px}
.stepbar .on::after{background:linear-gradient(90deg,var(--blue) 0 50%,var(--mist-2) 50%);}
.stepbar .on .n{animation:ringPulse 2.4s infinite}
.stepbar button{transition:background .2s,box-shadow .2s,transform .2s}
.stepbar button:not(.sel):hover{transform:translateY(-1px)}
.stepbar .dn::after{background:linear-gradient(90deg,var(--blue),#0a8a9c)}

/* the step briefing — prominent, first thing in every step */
.brief{display:grid;grid-template-columns:auto minmax(0,1.25fr) minmax(0,1fr);gap:18px 22px;align-items:start;background:linear-gradient(135deg,#F2F8F9 0%,#fff 60%);border:1px solid var(--blue-tint);border-radius:16px;padding:16px 18px;margin-bottom:18px;animation:rise .45s var(--ease) both;position:relative;overflow:hidden}
.brief::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(0,112,128,.08),transparent 70%);pointer-events:none}
.b-ic{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#0a8a9c,#007080);color:#fff;display:grid;place-items:center;box-shadow:0 10px 20px -12px rgba(0,112,128,.8)}
.b-ic .ico{width:22px;height:22px}
.b-lk .b-ic{background:var(--mist-2);color:var(--slate-2);box-shadow:none}.b-dn .b-ic{background:linear-gradient(135deg,#1d9a63,#167A4E)}
.b-lk{background:#FBFCFE;border-color:var(--line-soft)}.b-dn{background:linear-gradient(135deg,#F1FAF5 0%,#fff 60%);border-color:rgba(22,122,78,.15)}
.b-tx p{font-size:.86rem;line-height:1.55;color:var(--ink);margin:4px 0 8px}
.b-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.7rem;color:var(--slate-2)}
.b-meta>span{display:inline-flex;align-items:center;gap:5px}.b-meta .ico{width:13px;height:13px;color:var(--blue)}
.b-leg{gap:12px!important}.b-leg span{display:inline-flex;align-items:center;gap:5px}
.lg{width:12px;height:12px;border-radius:3px;display:inline-block}.lg.need{background:var(--hl);border:1px solid var(--hl-line)}.lg.ro{background:var(--mist);border:1px solid var(--mist-2)}
.b-req ul{list-style:none;display:grid;gap:7px;margin-top:6px}
.b-req li{display:flex;align-items:center;gap:10px;font-size:.78rem;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line-soft);border-radius:11px;padding:6px 10px 6px 6px;animation:rise .45s var(--ease) both;animation-delay:calc(.08s + var(--i)*.07s);transition:transform .2s,box-shadow .2s}
.b-req li:hover{transform:translateX(2px);box-shadow:0 6px 14px -10px rgba(11,37,69,.35)}
.b-req .ri{width:30px;height:30px;border-radius:9px;background:var(--blue-tint);color:var(--blue);display:grid;place-items:center;flex:none}
.b-req .ri .ico{width:16px;height:16px}
.b-req li>.ico.ok{width:15px;height:15px;color:var(--green);margin-left:auto}
.b-dn .b-req .ri{background:var(--green-tint);color:var(--green)}.b-lk .b-req .ri{background:var(--mist);color:var(--slate-2)}

/* content rises in when a step opens */
.p-body>*:not(.brief){animation:rise .5s var(--ease) both;animation-delay:.12s}
.p-body>*:nth-child(3){animation-delay:.18s}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.drop{transition:border-color .2s,background .2s,transform .2s,box-shadow .2s}
.drop:hover{transform:translateY(-1px);box-shadow:0 10px 22px -16px rgba(0,112,128,.6)}
.drop.pop{animation:pop .5s var(--ease)}
.drop .di{transition:transform .3s}.drop:hover .di{transform:translateY(-2px)}
.wi.pulse{animation:ringPulse 2.4s infinite}
.bank{display:flex;gap:12px;background:var(--mist);border-radius:12px;padding:14px 16px;font-size:.8rem}
.bank>.ico{color:var(--blue);margin-top:2px}.bank pre{font-family:inherit;white-space:pre-wrap;margin-top:6px;font-weight:600;line-height:1.6}
.rg{transition:--v 1.2s var(--ease)}
.side .sb{animation:rise .5s var(--ease) both}
.side .sb:nth-child(2){animation-delay:.05s}.side .sb:nth-child(3){animation-delay:.1s}.side .sb:nth-child(4){animation-delay:.15s}.side .sb:nth-child(5){animation-delay:.2s}
.tbl tbody tr{animation:rise .4s var(--ease) both;animation-delay:calc(var(--i,0)*.03s)}
.tbl tr.live td{transition:background .2s}
.tbl tr.live:hover td:last-child .ico{transform:translateX(3px)}.tbl td .ico{transition:transform .25s}
.next{position:relative;overflow:hidden}
.next::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.06) 50%,transparent 60%);background-size:250% 100%;animation:btnShine 7s ease-in-out infinite;pointer-events:none}
.snav button .ico{width:14px;height:14px;margin-right:6px;vertical-align:-2px}
.ss li{animation:rise .4s var(--ease) both}

/* sign-in, sign-up and verification */
#app>.reg{margin:auto}
.reg{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);width:min(1080px,calc(100% - 32px));margin:28px auto;border-radius:22px;overflow:hidden;box-shadow:0 30px 80px -40px rgba(11,37,69,.55);animation:rise .5s var(--ease) both;background:#fff}
.reg-side{background:radial-gradient(120% 90% at 0% 0%,#0E3557 0%,var(--navy) 55%,#071B33 100%);color:#fff;padding:34px 34px 30px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}
.reg-side::after{content:"";position:absolute;right:-90px;bottom:-90px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(127,211,220,.18),transparent 70%)}
.reg-side .eyebrow{color:#7FD3DC}
.reg-side h2{font-size:1.65rem;line-height:1.2;letter-spacing:-.02em}
.reg-side p{color:rgba(255,255,255,.72);font-size:.86rem}
.reg-steps{list-style:none;display:grid;gap:10px;margin-top:6px}
.reg-steps li{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 12px;animation:rise .5s var(--ease) both;animation-delay:calc(.15s + var(--d)*.08s)}
.reg-steps span{width:34px;height:34px;border-radius:10px;background:rgba(127,211,220,.15);color:#7FD3DC;display:grid;place-items:center;flex:none}
.reg-steps b{display:block;font-size:.84rem}.reg-steps small{font-size:.7rem;color:rgba(255,255,255,.55)}
.reg-trust{display:flex;gap:10px;align-items:flex-start;margin-top:auto;font-size:.74rem;color:rgba(255,255,255,.6)}.reg-trust .ico{color:#7FD3DC;flex:none}
.reg-main{border:0;border-radius:0;box-shadow:none}
.reg-main .cb{padding:32px 34px}
.reg-main h2{font-size:1.45rem;letter-spacing:-.02em;margin:4px 0 2px}
.reg-main .muted a,.reg-main .note a,.decl a{color:var(--blue);font-weight:600}
.reg-main .fg{grid-template-columns:1fr 1fr;margin-top:16px}
.reg-main .f{margin-top:0}
.reg-main form>.f{margin-top:14px}
.decl.bad span{color:var(--red)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.si-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.si-row .decl{margin:0}
.lnk2{color:var(--blue);font-size:.76rem;font-weight:600;padding:0}.lnk2:hover{text-decoration:underline}.lnk2:disabled{color:var(--slate-2);text-decoration:none;cursor:default}
.forgot{margin-top:12px;padding:14px;border-radius:12px;background:var(--mist)}
.or{display:flex;align-items:center;gap:12px;margin:22px 0 4px;color:var(--slate-2);font-size:.74rem}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.btn.wide{width:100%}
.verify .cb{text-align:center}
.v-ic{width:64px;height:64px;border-radius:50%;margin:4px auto 14px;background:var(--blue-tint);color:var(--blue);display:grid;place-items:center;animation:ringPulse 2.4s infinite}.v-ic .ico{width:28px;height:28px}
.otp{display:flex;justify-content:center;gap:10px;margin:22px 0 4px}
.otp input{width:52px;height:62px;text-align:center;font-size:1.5rem;font-weight:700;border:1.5px solid var(--line);border-radius:12px;outline:none;transition:.18s;background:#fff}
.otp input:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-tint);transform:translateY(-2px)}
.otp input.on{border-color:var(--blue);background:var(--blue-soft)}
.v-re{margin-top:16px;font-size:.76rem}.v-re a{color:var(--blue);font-weight:600}
.verify .note{text-align:left}
@media (max-width:860px){ .reg{grid-template-columns:1fr;margin:14px auto} .reg-side{padding:24px} .reg-steps{grid-template-columns:1fr 1fr} .reg-trust{display:none} .reg-main .cb{padding:24px 20px} }
@media (max-width:1180px){ .brief{grid-template-columns:auto minmax(0,1fr)} .b-req{grid-column:1/-1} .b-req ul{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))} }
@media (max-width:700px){ .fg2,.reg-main .fg{grid-template-columns:1fr} .otp input{width:42px;height:54px} .reg-steps{grid-template-columns:1fr} .stepbar button.s0{flex-basis:130px} }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important;transition:none!important} }
/* compact briefing so forms still fit on one screen */
.brief{padding:14px 16px;gap:12px 20px;margin-bottom:14px}
.b-tx p{margin:3px 0 6px}
.b-req ul{display:flex;flex-wrap:wrap;gap:6px}
.b-req li{padding:5px 11px 5px 5px;font-size:.75rem}
.b-req .ri{width:26px;height:26px;border-radius:8px}.b-req .ri .ico{width:14px;height:14px}

.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.three .review{grid-template-columns:1fr}
@media (max-width:1180px){.three{grid-template-columns:1fr 1fr}}@media (max-width:700px){.three{grid-template-columns:1fr}}
.two .review{grid-template-columns:1fr 1fr}
.three .review div{padding:5px 0}
.brief.mini{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:10px 14px}.brief.mini .b-ic{width:36px;height:36px;border-radius:11px}.brief.mini .b-ic .ico{width:18px;height:18px}.brief.mini .b-tx p{font-size:.8rem;margin:2px 0 0}.brief.mini .b-meta,.brief.mini .b-req>.eyebrow{display:none}.brief.mini .b-req ul{margin:0}
@media (max-width:1180px){.brief.mini{grid-template-columns:auto minmax(0,1fr)}}
.sigpad .ph{background:none;border:0;box-shadow:none;padding:0;border-radius:0;overflow:visible}
@media (max-width:860px){.reg-main{order:-1}.reg-side{padding:20px}.reg-side h2{font-size:1.25rem}.reg-steps{grid-template-columns:1fr 1fr;gap:8px}.reg-steps li{padding:8px}.reg-steps small{display:none}}

/* ===================== v1.2 — invite-only, ASMI form online, automatic emails ===================== */
.w-auto{background:#EEF0FF;color:#4B4FB8}
.si-new{font-size:.76rem;margin:-2px 0 10px;line-height:1.5}
.wi-big{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--mist);color:var(--slate-2);margin-bottom:12px}.wi-big .ico{width:24px;height:24px}
.callout.warn{background:#FFF8EC;border-color:#F6DDB4;color:#6B4A12}.callout.warn .ico{color:#A0570A}
.cvnote{display:flex;gap:8px;font-size:.74rem;line-height:1.55;margin-top:14px;background:var(--blue-soft);border-radius:12px;padding:10px 12px}.cvnote .ico{width:15px;height:15px;color:var(--blue);flex:none;margin-top:2px}
.refund{display:flex;gap:12px;border:1px solid var(--blue-tint);background:var(--blue-soft);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.refund>.ico{width:20px;height:20px;color:var(--blue);flex:none;margin-top:2px}.refund b{font-size:.84rem}.refund p{font-size:.76rem;color:var(--slate);margin:2px 0 0}.refund .decl{margin:8px 0 0}
.refund a,.declbox a{color:var(--blue);font-weight:600}
.decl.bad span{color:var(--red)}
/* enrolment form */
.p-body.enrol{padding-top:14px}
.enrol-intro{display:flex;gap:10px;align-items:flex-start;font-size:.78rem;color:var(--slate);line-height:1.5;margin-bottom:12px}.enrol-intro .ico{width:16px;height:16px;color:var(--blue);flex:none;margin-top:2px}.enrol-intro b{color:var(--ink)}
.sectabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:12px;border-bottom:1px solid var(--line-soft);margin-bottom:14px;scrollbar-width:none}
.sectabs::-webkit-scrollbar{display:none}
.sectabs button{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;color:var(--slate-2);padding:6px 12px 6px 6px;border-radius:100px;white-space:nowrap;border:1px solid var(--line-soft);background:#fff;transition:background .2s,color .2s,border-color .2s}
.sectabs button i{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--mist-2);display:grid;place-items:center;font-style:normal;font-size:.68rem}
.sectabs button i .ico{width:12px;height:12px}
.sectabs button:hover{border-color:var(--blue-tint);color:var(--ink)}
.sectabs button.on{background:var(--blue-tint);border-color:var(--blue-tint);color:var(--blue)}.sectabs button.on i{border-color:var(--blue)}
.sectabs button.dn{color:var(--ink)}.sectabs button.dn i{background:var(--blue);border-color:var(--blue);color:#fff}
.sec-in{animation:fadeIn .3s var(--ease) both}
.fnote{display:flex;gap:8px;align-items:flex-start;font-size:.72rem;color:var(--slate);background:var(--mist);border-radius:10px;padding:8px 11px;margin-bottom:12px}.fnote .ico{width:14px;height:14px;flex:none;margin-top:1px;color:var(--slate-2)}
.fg.asmi{row-gap:12px}
.fg .grp{font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);padding-top:6px;border-top:1px dashed var(--line-soft);margin-top:2px}
.fg .grp:first-child{border-top:0;padding-top:0;margin-top:0}
.f label .opt{font-style:normal;font-weight:500;color:var(--slate-2);font-size:.66rem;margin-left:4px}
.f .hint{display:flex;gap:5px;align-items:flex-start;line-height:1.45}.f .hint .ico{width:12px;height:12px;flex:none;margin-top:2px;color:var(--blue)}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opts button{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:500;color:var(--ink);padding:8px 12px;border-radius:10px;border:1.5px solid var(--hl-line);background:var(--hl);transition:background .15s,border-color .15s,color .15s,transform .15s}
.opts button:hover{border-color:var(--blue);transform:translateY(-1px)}
.opts button.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.opts button .ico{width:13px;height:13px}
.f.bad .opts button{border-color:rgba(200,40,40,.45)}
.decl.inl{margin:6px 0 0;font-size:.8rem;color:var(--ink)}
.two.sign{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}
.rvsec{display:grid;gap:6px}
.rvsec>button{display:grid;grid-template-columns:24px 1fr auto 14px;gap:10px;align-items:center;text-align:left;padding:9px 12px;border:1px solid var(--line-soft);border-radius:12px;background:#fff;font-size:.78rem;transition:border-color .2s,transform .2s}
.rvsec>button:hover{border-color:var(--blue-tint);transform:translateX(2px)}
.rvsec>button i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:.72rem}
.rvsec>button.ok i{background:var(--green-tint);color:var(--green)}.rvsec>button.bad i{background:#FFF0E0;color:#A0570A}
.rvsec>button i .ico{width:12px;height:12px}.rvsec>button span{font-size:.7rem;color:var(--slate-2)}.rvsec>button.bad span{color:#A0570A;font-weight:600}
.rvsec>button>.ico{width:13px;height:13px;color:var(--slate-2)}
.declbox{border:1px solid var(--line-soft);border-radius:16px;padding:14px 16px;background:#fff}
.declbox p{font-size:.78rem;color:var(--slate);line-height:1.55;margin:4px 0 10px}
.declbox .decl{margin:8px 0}
.honest{display:flex;gap:10px;align-items:flex-start;background:var(--green-tint);border-radius:12px;padding:10px 12px;font-size:.76rem;color:#14532D;line-height:1.5}.honest .ico{width:16px;height:16px;color:var(--green);flex:none;margin-top:1px}
.declbox .sigpad,.declbox .sigdone{margin-top:12px}
.sigrow{display:flex;align-items:center;gap:8px;margin-top:8px}.sigrow .sp{flex:1}.sigrow .muted{font-size:.7rem}
.sigpad.inked .ph{opacity:0}
.btn.wide{width:100%;justify-content:center}
/* admin */
.next-ex{flex-basis:100%;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 12px;font-size:.76rem;color:rgba(255,255,255,.85)}
.next-ex>.ico{width:18px;height:18px;color:#7FD3DC;flex:none}.next-ex span{flex:1;min-width:200px}.next-ex b{color:#fff}
.next-ex .btn.bg{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.tbl .acts{display:flex;gap:6px;flex-wrap:wrap}
.tbl .clip{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl.enq td{vertical-align:top}
.enq-sum{display:flex;gap:12px;align-items:flex-start;background:var(--blue-soft);border:1px solid var(--blue-tint);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.enq-sum>div{flex:1;display:grid;gap:2px;font-size:.78rem}.enq-sum b{font-size:.9rem}.enq-sum span{color:var(--slate)}
.chk.care li{cursor:pointer}.chk.care li span{font-size:.74rem}
.modal.wide .box{width:min(980px,100%)}
@media (max-width:1020px){.two.sign{grid-template-columns:1fr}}
.declbox .sigpad canvas{height:110px}
.p-body .fg.asmi .grp{grid-column:1/-1}
.snav button>span{display:inline-flex;align-items:center}
@media (min-width:1200px){
  .p-body .fg.asmi{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:10px}
  .p-body .fg.asmi .half{grid-column:span 2}
  .p-body .fg.asmi .wide,.p-body .fg.asmi .grp{grid-column:1/-1}
}
.p-body.enrol .enrol-intro{margin-bottom:10px}
.p-body.enrol .sectabs{padding-bottom:10px;margin-bottom:12px}
.fg.asmi .f .hint{margin-top:4px}

/* ===================== v1.2.1 — calmer navigation, alerts, viewer, celebration, tighter frame ===================== */
:root{--appw:1480px}
/* no entrance animations once the page has settled (stops the sidebar "flashing" between steps) */
.settled .side .sb,.settled .tbl tbody tr,.settled .ss li,.settled .b-req li,.settled .brief{animation:none!important}
/* header and app share one frame, like the main website */
.top .in{max-width:var(--appw);margin:0 auto;padding:8px 20px;justify-content:space-between}
.top .right{margin-left:auto;display:flex;align-items:center;gap:12px}
.top .right .me{margin:0}
@media (min-width:1021px){
  .shell{max-width:var(--appw);width:100%;margin:0 auto;padding:14px 20px 16px;gap:16px}
  .side{border-radius:18px}
  .main{padding:0}
  .toast{left:50%}
}
body.ahsr-portal{background:#EEF2F7}
/* stepbar: number always visible, tick badge when done */
.stepbar .n{position:relative}
.stepbar .n .ok{position:absolute;right:-5px;bottom:-5px;width:15px;height:15px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 2px #fff;font-style:normal}
.stepbar .n .ok .ico{width:9px;height:9px;stroke-width:3.4}
/* Apple-style red notification bubble */
.bubble{font-style:normal;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#FF3B30;color:#fff;font-size:.66rem;font-weight:700;line-height:1;box-shadow:0 0 0 2px var(--navy);animation:bubblePop .35s var(--ease) both}
.snav .on .bubble{box-shadow:0 0 0 2px #fff}
.inbox .bubble{margin-left:auto}
@keyframes bubblePop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
/* sidebar alert card */
.sb-alert{padding:8px!important}
.alert{display:flex;gap:11px;align-items:center;width:100%;text-align:left;border-radius:12px;padding:11px 12px;color:#fff}
.alert>div{flex:1;min-width:0;display:grid;gap:2px}
.alert small{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.alert b{font-size:.84rem;line-height:1.35}
.alert span{font-size:.72rem;color:rgba(255,255,255,.7)}
.alert>.ico{width:18px;height:18px;flex:none}
.a-act{background:linear-gradient(135deg,#FF3B30,#D92D21);box-shadow:0 10px 24px -14px rgba(255,59,48,.9);transition:transform .2s}
.a-act:hover{transform:translateY(-1px)}.a-act small{color:rgba(255,255,255,.85)}
.a-act .dot{width:9px;height:9px;border-radius:50%;background:#fff;flex:none;animation:dotPulse 1.6s infinite}
.a-wait{background:rgba(127,211,220,.1);border:1px solid rgba(127,211,220,.25)}.a-wait small{color:#7FD3DC}.a-wait>.ico{color:#7FD3DC}
.a-done{background:linear-gradient(135deg,#1D9A63,#167A4E)}.a-done small{color:#C9F2DD}
.news{display:grid;gap:4px;margin-top:8px}
.news .eyebrow{color:#FF8A80;font-size:.6rem;padding:0 4px}
.nw{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.05);color:#fff}
.nw:hover{background:rgba(255,255,255,.09)}
.nw .dot{width:8px;height:8px;border-radius:50%;background:#FF3B30;flex:none;margin-top:5px}
.nw span{display:grid;gap:1px;min-width:0}.nw b{font-size:.76rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nw small{font-size:.64rem;color:rgba(255,255,255,.55)}
/* document viewer + CV review */
.modal.view .box{width:min(1100px,100%);height:92vh}
.modal.view .mb{flex:1;min-height:0;padding:0;display:flex}
.viewer{flex:1;min-height:0;display:flex;background:#525659}
.viewer iframe{flex:1;border:0;width:100%;height:100%;min-height:60vh;background:#525659}
.viewer.img{align-items:center;justify-content:center;padding:16px;overflow:auto}.viewer.img img{max-width:100%;max-height:100%;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.modal .mf{gap:8px}
.rev{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);flex:1;min-height:0;width:100%}
.rev-f{padding:18px 20px;overflow-y:auto}
.rev-f .fg{grid-template-columns:1fr 1fr}
.tbl tr.new td:first-child{box-shadow:inset 3px 0 0 #FF3B30}
@media (max-width:860px){ .rev{grid-template-columns:1fr;grid-template-rows:50vh auto;overflow-y:auto} }
/* completion: celebration */
.p-body.celebrate{position:relative;overflow-x:hidden}
.confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.win{position:relative;text-align:center;border-radius:20px;padding:30px 24px 26px;background:radial-gradient(120% 140% at 50% 0%,#E9F8F0 0%,#F5FBF8 55%,#fff 100%);border:1px solid #CDEBDB;margin-bottom:18px;animation:rise .6s var(--ease) both}
.win-medal{width:74px;height:74px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,#25B074,#167A4E);box-shadow:0 0 0 8px #DDF3E7,0 18px 34px -16px rgba(22,122,78,.75);animation:pop .7s var(--ease) .15s both}
.win-medal .ico{width:34px;height:34px}
.win .eyebrow{color:var(--green)}
.win h2{font-size:1.6rem;margin:4px 0 8px;color:#0F3B2A}
.win p{max-width:56ch;margin:0 auto;color:#2E5444;font-size:.88rem;line-height:1.6}
.win-next{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:16px}
.win-next li{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;color:#14532D;background:#fff;border:1px solid #CDEBDB;border-radius:100px;padding:6px 12px}
.win-next .ico{width:14px;height:14px;color:var(--green)}
.win-low .eyebrow{display:block;margin-bottom:8px}
.win-low .callout{margin-top:26px}
.snav .bubble,.snav .on .bubble{background:#FF3B30!important;color:#fff!important;padding:0 6px!important;border-radius:10px!important}
/* close / delete */
.sb-danger{display:grid;gap:6px;padding:10px 12px!important;background:transparent!important;border:1px dashed rgba(255,255,255,.14)!important}
.lnk.dz{display:inline-flex;align-items:center;gap:6px;color:#FF8A80;font-size:.74rem;text-align:left}.lnk.dz:hover{color:#FFB3AC}.lnk.dz .ico{width:13px;height:13px}
.next.n-quiet{background:linear-gradient(135deg,#5A1A1A,#8E2A22 70%,#B23A2E)}
.next.n-quiet .eyebrow{color:#FFB3AC}
.next.n-closed{background:linear-gradient(135deg,#3A4656,#4F5D70)}
.next.n-closed .eyebrow{color:#C9D3E0}
.next p b{color:#fff}
.btn.danger{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}
.btn.danger:disabled{opacity:.45}
#crO button.on{background:var(--blue);border-color:var(--blue);color:#fff}
/* stepbar: 8 equal columns across the full width (the old 9th "registration" column is gone) */
.stepbar{grid-template-columns:repeat(8,minmax(0,1fr))}
.stepbar small{white-space:nowrap}
.stepbar b{white-space:normal!important;text-overflow:clip!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stepbar .n .ok{right:-8px;bottom:-6px;width:14px;height:14px}
/* invoice creator */
.rev.inv{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)}
.ivf{display:grid;gap:12px}
.ivf .grp{font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);padding-top:8px;border-top:1px dashed var(--line-soft);margin-top:2px}
.ivrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ivf textarea{width:100%;font:inherit;font-size:.82rem;border:1.5px solid var(--line);border-radius:10px;padding:9px 11px;resize:vertical}
.ivf textarea:focus{outline:none;border-color:var(--blue)}
.sfx{display:flex;align-items:center;gap:6px}.sfx span{font-size:.74rem;color:var(--slate-2);white-space:nowrap}.sfx input{min-width:0}
.ivtotal{display:flex;justify-content:space-between;align-items:center;background:var(--blue-tint);border-radius:12px;padding:12px 14px;margin-top:4px}
.ivtotal span{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}.ivtotal b{font-size:1.1rem;color:var(--navy)}
.ivnote{font-size:.7rem}
@media (max-width:860px){ .ivrow{grid-template-columns:1fr 1fr} }

/* v1.4.1 invoice discount */
.seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:var(--blue-tint);border-radius:12px;padding:4px}
.seg button{flex:1 1 auto;border:0;background:transparent;font:inherit;font-size:.78rem;font-weight:600;color:var(--slate-2);padding:8px 10px;border-radius:9px;cursor:pointer;white-space:nowrap}
.seg button.on{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(11,37,69,.12)}
.ivafter{min-height:40px;display:flex;flex-direction:column;justify-content:center;font-weight:700;color:var(--navy);font-size:.9rem;line-height:1.25}
.ivafter span{font-weight:600;font-size:.7rem;color:#0a8a4a}

/* ================= v1.6 phone app (home-screen) + notifications ================= */
html{-webkit-text-size-adjust:100%}
body{-webkit-tap-highlight-color:transparent}
.m-only{display:none}
.sb-push .pc-h{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.sb-push .pc-h b{font-size:.84rem;color:#fff;line-height:1.25}
.sb-push .pc-i{flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:rgba(127,211,220,.14);color:#7FD3DC;display:flex;align-items:center;justify-content:center}
.sb-push .pc-i.on{background:rgba(52,199,89,.18);color:#5BE08A}
.sb-push .pc-i .ico{width:16px;height:16px}
.sb-push .sbp{margin-bottom:10px}
.sb-push .pc-steps{margin:0;padding:0;list-style:none;counter-reset:pc;display:flex;flex-direction:column;gap:7px}
.sb-push .pc-steps li{counter-increment:pc;display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:.74rem;color:#C9D6E3;line-height:1.4}
.sb-push .pc-steps li:before{content:counter(pc);flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:.66rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.sb-push .pc-steps .ico{width:15px;height:15px;color:#7FD3DC}
.sb-push .pc-steps b{color:#fff}
.sb-push .pc-row{display:flex;align-items:center;gap:12px}
.sb-push .lnk2{color:#9FB3C8}
/* on white (phone layout, under the list) */
.main .sb-push{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-top:16px}
.main .sb-push .pc-h b{color:var(--navy)}
.main .sb-push .pc-i{background:var(--blue-tint);color:var(--blue)}
.main .sb-push .pc-i.on{background:var(--green-tint);color:var(--green)}
.main .sb-push .sbp,.main .sb-push .pc-steps li{color:var(--slate)}
.main .sb-push .pc-steps b{color:var(--navy)}
.main .sb-push .pc-steps li:before{background:var(--blue-tint);color:var(--blue)}
.main .sb-push .pc-steps .ico{color:var(--blue)}
.main .sb-push .lnk2{color:var(--slate-2)}
@media (max-width:1020px){
  .m-only{display:block}.m-only[hidden]{display:none}
  .side .sb-push,.side .sb-how{display:none}
  .snav{display:flex!important;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 calc(var(--pad) * -1);padding:0 var(--pad)}
  .snav::-webkit-scrollbar{display:none}
  .snav button{flex:0 0 auto;width:auto;white-space:nowrap;gap:8px}
  .snav button span{white-space:nowrap}
  .top .in{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .toast{top:calc(12px + env(safe-area-inset-top))}
}
@media (max-width:700px){
  /* iOS zooms into any field under 16px — keep them at 16 */
  .f input,.f select,.f textarea,.search input,.modal input,.modal select,.modal textarea{font-size:16px}
  .top .btn .bt{display:none}
  .top .right{gap:8px}
  .brand img{height:32px}
  /* sheets slide up from the bottom, like iOS */
  .modal{padding:0;align-items:flex-end}
  .modal .box{width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 24px);border-radius:20px 20px 0 0;animation:sheet .32s var(--ease)}
  .modal.view .box,.modal.wide .box{height:calc(100dvh - env(safe-area-inset-top) - 12px)}
  .modal .mf{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .modal .mf .btn{flex:1 1 100%;justify-content:center}
  .modal .mf>span[style*="flex:1"]{display:none}
  .main{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  .m-head{flex-wrap:wrap;gap:10px}
  .m-head .btn{flex:1 1 auto;justify-content:center}
  /* enquiries as cards */
  .tbl.enq thead{display:none}
  .tbl.enq tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 16px;border-bottom:1px solid var(--line-soft);align-items:center}
  .tbl.enq tbody td{display:block!important;padding:0!important;border:0!important}
  .tbl.enq tbody td:nth-child(2){grid-column:1/-1;order:-2}
  .tbl.enq tbody td:nth-child(1){order:-1;font-size:.74rem;color:var(--slate-2)}
  .tbl.enq tbody td:nth-child(3){display:none!important}
  .tbl.enq tbody td:nth-child(4){grid-column:1/-1;font-size:.8rem}
  .tbl.enq tbody td:nth-child(5){order:-1;justify-self:end}
  .tbl.enq tbody td:nth-child(6){grid-column:1/-1}
  .tbl.enq tbody td:nth-child(6) .btn{margin:4px 6px 0 0}
}
@keyframes sheet{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
/* home-screen app: no text selection callouts on controls, honour the notch */
@media (display-mode: standalone){
  .btn,.snav button,.tabs button,.stepbar button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
  .top{padding-top:env(safe-area-inset-top)}
}
@media (max-width:860px){
  .rev,.rev.inv{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .rev .viewer{height:58vh;min-height:320px}
  .rev-f{overflow:visible}
}
@media (max-width:700px){
  .modal .mf{gap:8px}
  .modal .mf .btn{flex:1 1 0;min-width:0;padding-left:10px;padding-right:10px}
  .modal .mf .btn.sm{flex:1 1 100%;order:3;height:34px;font-size:.74rem;background:transparent;border-color:transparent;color:var(--slate-2)}
  .rev .viewer{height:44vh;min-height:280px}
  .p-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}
@media (max-width:860px){ .rev .viewer iframe{min-height:0} .rev .viewer{overflow:hidden} }
@media (max-width:700px){ .modal .mf .btn:not(.sm){white-space:normal;line-height:1.2;height:auto;min-height:46px;text-align:center} }

/* v1.6.1 completion section in the AHSR colours */
.win{background:radial-gradient(120% 140% at 50% 0%,#E4F1F2 0%,#F2F8F9 55%,#fff 100%);border:1px solid #CFE6E9;overflow:hidden}
.win:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--blue) 0 72%,var(--red) 72% 100%)}
.win:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='%230B2545' fill-opacity='.07'%3E%3Cpath d='M30 14l2.4 5 5.5.8-4 3.9.9 5.5-4.8-2.6-4.9 2.6.9-5.5-4-3.9 5.5-.8z'/%3E%3Cpath d='M78 40l1.8 3.7 4 .6-2.9 2.8.7 4-3.6-1.9-3.6 1.9.7-4-2.9-2.8 4-.6z'/%3E%3Cpath d='M50 86l2.2 4.5 5 .7-3.6 3.5.8 5-4.4-2.4-4.5 2.4.9-5-3.7-3.5 5-.7z'/%3E%3Cpath d='M100 92l1.3 2.6 2.9.4-2.1 2 .5 2.9-2.6-1.4-2.6 1.4.5-2.9-2.1-2 2.9-.4z'/%3E%3C/g%3E%3C/svg%3E") left top/180px repeat}
.win>*{position:relative;z-index:1}
.win-medal{background:linear-gradient(140deg,#26A3B3 0%,var(--blue) 45%,var(--navy) 100%);box-shadow:0 0 0 8px #D9EEF0,0 18px 34px -16px rgba(0,88,106,.8)}
.win .eyebrow{color:var(--blue)}
.win h2{color:var(--navy)}
.win p{color:var(--slate)}
.win p b{color:var(--navy)}
.win-next li{color:var(--navy);border-color:#CFE6E9}
.win-next .ico{color:var(--blue)}
.a-done{background:linear-gradient(135deg,var(--blue) 0%,#0A4A5E 55%,var(--navy) 100%);box-shadow:inset 0 -3px 0 var(--red)}
.a-done small{color:#9FD3DA}

/* ================= v1.7 admin detail: content + right rail ================= */
.jgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.jgrid>.panel{margin:0;min-width:0}
.jrail{display:flex;flex-direction:column;gap:12px;min-width:0}
.rc{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 14px 12px}
.rc h4{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-2);margin:0 0 10px}
.rc h4 em{font-style:normal;font-size:.66rem;background:var(--mist-2);color:var(--slate);border-radius:20px;padding:1px 8px;letter-spacing:0}
.qa{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:1px solid var(--line-soft);border-radius:12px;padding:9px 10px;margin-bottom:7px;cursor:pointer;font:inherit;color:var(--ink);text-decoration:none;transition:.15s}
.qa:last-child{margin-bottom:0}
.qa:hover{border-color:var(--blue);background:var(--blue-soft)}
.qa .qi{flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:var(--blue-tint);color:var(--blue);display:flex;align-items:center;justify-content:center}
.qa .qi .ico{width:16px;height:16px}
.qa .qt{flex:1;min-width:0}.qa .qt b{display:block;font-size:.8rem;font-weight:600;color:var(--navy)}.qa .qt small{display:block;font-size:.68rem;color:var(--slate-2);margin-top:1px}
.qa>.ico{width:14px;height:14px;color:var(--slate-2)}
.ct .qa{margin-bottom:9px}
.rdo{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line-soft)}.rdo:first-of-type{border-top:0;padding-top:0}
.rdo>div{flex:1;min-width:0}.rdo b{display:block;font-size:.78rem;color:var(--navy)}.rdo span{display:block;font-size:.74rem;color:var(--ink);margin:2px 0}.rdo small{font-size:.66rem;color:var(--slate-2)}
.rc-redo{border-color:var(--amber-tint);background:linear-gradient(#fff,#FFFBF3)}
.nx{display:flex;gap:10px;align-items:flex-start;padding:6px 0}
.nx i{flex:0 0 20px;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;margin-top:1px}
.nx.on i{background:var(--blue);border-color:var(--blue);color:#fff}.nx i .ico{width:11px;height:11px}
.nx b{display:block;font-size:.78rem;font-weight:600;color:var(--navy)}.nx small{display:block;font-size:.68rem;color:var(--slate-2)}
.nx:not(.on) b{font-weight:500;color:var(--slate)}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl li{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;padding:6px 0;position:relative}
.tl li i{width:10px;height:10px;border-radius:50%;border:2px solid var(--line);background:#fff;margin-left:2px;position:relative;z-index:1}
.tl li.ok i{background:var(--green);border-color:var(--green)}
.tl li:not(:last-child):after{content:"";position:absolute;left:6px;top:20px;bottom:-6px;width:2px;background:var(--line-soft)}
.tl span{font-size:.76rem;color:var(--ink)}.tl time{font-size:.68rem;color:var(--slate-2);white-space:nowrap}
.nt{padding:8px 10px;border-radius:10px;background:var(--mist);margin-bottom:7px}
.nt p{margin:0;font-size:.76rem;color:var(--ink);white-space:pre-wrap;line-height:1.45}.nt small{display:block;font-size:.64rem;color:var(--slate-2);margin-top:4px}
.notes-all .nt{margin-bottom:9px}
.stg-docs{padding:0 20px 6px}.stg-docs .eyebrow{display:block;margin:6px 0 8px}
.wf .s.rd{display:flex;gap:6px;align-items:flex-start;color:var(--amber);margin-top:4px}.wf .s.rd .ico{width:13px;height:13px;flex:0 0 13px;margin-top:2px}
.wf .r .btn+.btn{margin-left:6px}
.d .tt .sz{font-weight:600;color:var(--slate)}
/* candidate: reopened step, keep-documents note, completion */
.redo-note{display:flex;gap:12px;align-items:flex-start;background:var(--amber-tint);border:1px solid #F3D9A6;border-radius:14px;padding:13px 15px;margin-bottom:16px}
.redo-note>.ico{width:20px;height:20px;color:var(--amber);flex:0 0 20px;margin-top:1px}
.redo-note b{display:block;font-size:.84rem;color:var(--navy)}.redo-note p{margin:3px 0 4px;font-size:.82rem;color:var(--ink);white-space:pre-wrap}.redo-note small{font-size:.7rem;color:var(--slate-2)}
.retain{border:1.5px solid var(--red);background:var(--red-tint);border-radius:14px;padding:14px 16px;margin:14px 0}
.retain>b{display:block;color:var(--red);font-weight:800;font-size:.88rem;line-height:1.4}
.retain p{margin:6px 0 10px;color:var(--ink);font-size:.82rem;line-height:1.5}
.retain .decl.bad span{color:var(--red)}
.callout.keep{align-items:flex-start}.callout.keep b{display:block;color:var(--navy);margin-bottom:3px}.callout.keep p{margin:0 0 10px;font-size:.8rem}
@media (max-width:1280px){ .jgrid{grid-template-columns:minmax(0,1fr)} .jrail{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px} }
@media (max-width:700px){ .jrail{grid-template-columns:1fr} .stg-docs{padding:0 16px 6px} }
@media (min-width:1281px) and (min-height:620px){
  .main>.next,.main>#jStepbar{flex:none}
  .jgrid{flex:1;min-height:0;align-items:stretch}
  .jgrid>.panel{min-height:0}
  .jrail{min-height:0;overflow-y:auto;padding-right:2px;scrollbar-width:thin}
}
@media (min-width:1021px) and (max-width:1280px) and (min-height:620px){
  .main>.next,.main>#jStepbar{flex:none}
  .main{overflow-y:auto}
  .jgrid{flex:none}.jgrid>.panel{flex:none;min-height:440px;max-height:none}
  .jgrid .p-body{max-height:none;overflow:visible}
}

/* ================= v1.7.1 tighter layout + sidebar skyline ================= */
/* the navy sidebar fades into the Sydney skyline from the main website (Pathways section) */
.side{background:linear-gradient(180deg,var(--navy) 0%,var(--navy) 38%,rgba(11,37,69,.82) 60%,rgba(11,37,69,.6) 82%,rgba(11,37,69,.5) 100%),url(side-sydney.jpg) center bottom/100% auto no-repeat,var(--navy);background-attachment:local,local,local}
@media (min-width:1021px) and (min-height:620px){ .side{background-attachment:scroll} }
.side .sb{background:rgba(11,37,69,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
/* fields in pop-ups use the full width */
.f textarea{width:100%;min-height:96px;border:1.5px solid var(--line);border-radius:10px;padding:10px 13px;font:inherit;font-size:.86rem;line-height:1.5;resize:vertical;outline:none;background:#fff;transition:.18s}
.f textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
.modal .mb .f{margin-bottom:14px}.modal .mb .f:last-child{margin-bottom:0}
.modal .mb .f label{margin-bottom:6px}
.modal .mb>p.muted{margin-bottom:16px}
/* less vertical space everywhere, so most steps fit without scrolling */
.next{padding:14px 18px;margin:12px 0;gap:10px 14px;flex-wrap:wrap}
.next>div:first-child{flex:1 1 320px;min-width:0}
.next h3{font-size:.95rem}.next p{font-size:.75rem;line-height:1.5;margin-top:2px}
.next .go{flex:none;align-self:center}
.next-ex{margin-top:2px}
.stepbar button{padding:7px 9px 11px}
.tabs button{padding:11px 12px}
.stg-h{padding:11px 18px}
.wf li{padding:8px 18px}
.p-head{padding:11px 20px}
.rc{padding:12px 12px 10px}.rc h4{margin-bottom:8px}
.qa{padding:7px 9px;margin-bottom:6px;gap:10px}.qa .qi{flex-basis:28px;width:28px;height:28px;border-radius:9px}
.jgrid{gap:12px}.jrail{gap:10px}
.nx{padding:4px 0}.tl li{padding:4px 0}
.side{gap:8px;padding:12px 12px 16px}.sb{padding:10px 12px}
.chk li{padding:4px 2px}.kvs div{padding:4px 0}
@media (max-width:1100px){ .next{flex-wrap:wrap} .next .go{margin-left:0} }

/* ================= v1.8 consolidated layout ================= */
.jgrid.one{grid-template-columns:minmax(0,1fr)}
/* admin sidebar: contact rows with their own actions */
.sb-ct .ctr{display:flex;align-items:center;gap:9px;padding:5px 0;border-top:1px solid rgba(255,255,255,.06);font-size:.74rem;min-width:0}
.sb-ct h4+.ctr{border-top:0}
.sb-ct .ci{flex:0 0 16px;color:#7FD3DC;display:flex}.sb-ct .ci .ico{width:14px;height:14px}
.sb-ct .ct-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.88)}
.sb-ct .ct-b{display:flex;gap:4px;flex:none}
.ib{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#fff;border:0;cursor:pointer;transition:.15s}
.ib:hover{background:rgba(127,211,220,.25)}.ib .ico{width:13px;height:13px}
.ct-acts{display:flex;justify-content:space-between;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}
.ct-acts .lnk{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;white-space:nowrap}.ct-acts .ico{width:12px;height:12px}
/* workflow tab: steps on the left, key dates + emails on the right */
.wf2{display:grid;grid-template-columns:minmax(0,1fr) 300px;min-height:100%}
.wf-main{min-width:0;border-right:1px solid var(--line-soft)}
.wf-side{padding:14px 16px;display:flex;flex-direction:column;gap:16px;background:#FBFCFE}
.wf-side .rel{margin:0}.wf-side .eyebrow{display:block;margin-bottom:8px}
.stg-r{display:flex;align-items:center;gap:12px}.stg-r .lnk{display:inline-flex;align-items:center;gap:5px;font-size:.74rem}.stg-r .lnk .ico{width:13px;height:13px}
@media (max-width:1180px){ .wf2{grid-template-columns:minmax(0,1fr)} .wf-main{border-right:0;border-bottom:1px solid var(--line-soft)} }
/* activity: one clear timeline, grouped by day */
.act1{padding:4px 0 10px}
.act1 .ad{position:sticky;top:0;background:#fff;z-index:1;padding:12px 20px 6px;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-2)}
.act1 .a{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:6px 20px;font-size:.78rem;position:relative}
.act1 .a time{color:var(--slate-2);font-size:.7rem;padding-top:1px}
.act1 .a span{color:var(--ink);line-height:1.45}
/* notes tab */
.notes-tab{padding:14px 20px}
.note-add{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px}
.note-add textarea{flex:1;min-height:44px;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:.82rem;resize:vertical;outline:none}
.note-add textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}
/* candidate sidebar: one status card, emails, documents, login */
.sb-next{margin-top:10px}
.sb-next .alert{margin:0}
.sb-mail h4 .bubble{margin-left:auto}
.sb-mail .nw{margin-top:4px}
.sb-mail .lnk,.sb .lnk#sbDocs{display:block;margin-top:8px;font-size:.72rem}
.docs-s li{cursor:pointer}
.sb-login{display:flex;align-items:center;gap:8px;font-size:.72rem;color:rgba(255,255,255,.75)}
.sb-login>.ico{width:14px;height:14px;color:#7FD3DC;flex:none}.sb-login span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-login .lnk{font-size:.7rem;white-space:nowrap}
.cring{width:100%;text-align:left;border-radius:12px;transition:.15s;color:#fff}
.cring.go{background:linear-gradient(135deg,#E5383B,#C8102E);padding:10px 12px;margin-top:12px;border-top:0;box-shadow:0 10px 24px -14px rgba(200,16,46,.9)}
.cring.go:hover{filter:brightness(1.06)}
.cring.go small{color:#FFD5D5}.cring.go .rg{--track:rgba(255,255,255,.25)}
.cring>.ico{width:16px;height:16px;flex:none;margin-left:auto}
.stg-r .lnk{color:var(--blue)}

/* v1.8.1 no scrollbar flash: entrance animations never push content below the fold
   (a downward offset or a scale above 100% briefly makes a panel "taller" than it is) */
@keyframes rise{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.97)}100%{transform:none}}
.p-body,.side,.jrail,#app,.main{overflow-anchor:none}

/* v1.8.2 activity: day blocks, zebra rows, who did it */
.act2{padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}
.aday{border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;background:#fff}
.aday .ad{background:var(--mist);padding:8px 14px;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--line-soft)}
.aday .a{display:grid;grid-template-columns:48px 10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 14px;font-size:.78rem;border-top:1px solid var(--line-soft)}
.aday .ad+.a{border-top:0}
.aday .a:nth-child(odd){background:#FAFBFD}
.aday .a time{color:var(--slate-2);font-size:.7rem;font-variant-numeric:tabular-nums}
.aday .adot{width:8px;height:8px;border-radius:50%;background:var(--blue)}
.aday .a.w-cand .adot{background:var(--amber)}.aday .a.w-auto .adot{background:#9FB3C8}
.aday .am{color:var(--ink);line-height:1.45}
.aday .aw{font-size:.64rem;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--blue-tint);color:var(--blue);white-space:nowrap}
.aday .a.w-cand .aw{background:var(--amber-tint);color:var(--amber)}.aday .a.w-auto .aw{background:var(--mist-2);color:var(--slate-2)}
@media (max-width:700px){ .aday .a{grid-template-columns:44px 10px minmax(0,1fr)} .aday .aw{grid-column:3;justify-self:start} }
/* notes: edit / delete */
.notes-tab .nt{padding:11px 13px;margin-bottom:9px;border:1px solid var(--line-soft);background:#FAFBFD}
.nt-f{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.nt-f small{margin:0}
.nt-a{display:flex;align-items:center;gap:12px}
.nt-a .lnk{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;color:var(--blue)}.nt-a .ico{width:12px;height:12px}
.nt-a .lnk.dz{color:var(--red)}
.nt.editing textarea{width:100%;border:1.5px solid var(--blue);border-radius:10px;padding:9px 11px;font:inherit;font-size:.8rem;resize:vertical;outline:none;box-shadow:0 0 0 3px var(--blue-tint)}
.btn.dzb{background:var(--red);border-color:var(--red);color:#fff}
.aday .a,.aday .a:nth-child(odd){background:#fff}
.aday .a:nth-child(odd){background:#F8FAFC}
.aday .a:hover{background:var(--blue-soft)}

/* v1.8.3 billing details in step 2 */
.bill{margin-top:16px;border:1px solid var(--line-soft);border-radius:14px;padding:14px 16px 6px;background:#fff}
.bill-h{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.bill-h>.ico{flex:0 0 34px;width:34px;height:34px;padding:8px;border-radius:10px;background:var(--blue-tint);color:var(--blue);box-sizing:border-box}
.bill-h b{display:block;font-size:.86rem;color:var(--navy)}.bill-h span{display:block;font-size:.74rem;color:var(--slate-2);margin-top:2px}
.bill-g{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}
.bill .f .hint{margin-top:3px}
@media (max-width:1100px){ .bill-g{grid-template-columns:1fr 1fr} }
@media (max-width:700px){ .bill-g{grid-template-columns:1fr} }

/* ===== v1.9 — phone polish ===== */
/* strips that scroll sideways fade at the edge that has more to show */
.stepbar.fade-r,.wz-head.fade-r,.sectabs.fade-r,.tabs.fade-r,.snav.fade-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent)}
.stepbar.fade-l,.wz-head.fade-l,.sectabs.fade-l,.tabs.fade-l,.snav.fade-l{-webkit-mask-image:linear-gradient(90deg,transparent,#000 34px);mask-image:linear-gradient(90deg,transparent,#000 34px)}
.stepbar.fade-l.fade-r,.wz-head.fade-l.fade-r,.sectabs.fade-l.fade-r,.tabs.fade-l.fade-r,.snav.fade-l.fade-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 34px,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,transparent,#000 34px,#000 calc(100% - 34px),transparent)}
.tabs,.wz-head,.sectabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.tabs::-webkit-scrollbar,.wz-head::-webkit-scrollbar,.sectabs::-webkit-scrollbar,.stepbar::-webkit-scrollbar,.snav::-webkit-scrollbar{display:none}
.nwr{white-space:nowrap}
@media (max-width:760px){
  /* iPhone zooms the page into any field with text smaller than 16px — keep every field at 16px */
  input:not([type=checkbox]):not([type=radio]),select,textarea,.note-add textarea{font-size:16px!important}
  /* step heading in the admin workflow: title on its own line, status + "Ask to redo" underneath */
  .stg-h{flex-wrap:wrap;align-items:flex-start;gap:8px}
  .stg-h>div:first-child{flex:1 1 100%}
  .stg-r{flex-wrap:wrap;gap:10px 14px}
  .stg-r .lnk{white-space:nowrap}
  /* notes: box full width, button underneath */
  .note-add{flex-direction:column;align-items:stretch}
  .note-add .btn{align-self:flex-end}
  /* bigger tap area for small text buttons, without moving anything */
  #back,#setQual,.pw .eye,#fgT,.lnk,.lnk2{position:relative}
  #back::after,#setQual::after,.pw .eye::after,#fgT::after,.lnk::after,.lnk2::after{content:'';position:absolute;inset:-10px -4px}
  /* the sticky action bar clears the iPhone home indicator */
  .p-foot{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
.rev .viewer.mini{height:auto!important;min-height:72px!important;flex:none;overflow:visible!important;position:relative;padding:14px 16px;background:var(--mist,#F4F6FA);display:flex;justify-content:center;border-bottom:1px solid var(--line-soft)}
.rev .viewer.mini iframe{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.rev .viewer.mini .btn{width:100%;justify-content:center}
.rev.has-mini{grid-template-rows:auto auto!important}
.docs .tt span .nwr{display:block}.docs .nwr b{display:inline}
.sfx .ivunit{display:inline-flex;flex:none;gap:2px;padding:2px;border-radius:9px;background:var(--mist-2,#E7ECF3)}.sfx .ivunit button{padding:6px 10px;font-size:.74rem;font-weight:700;border-radius:7px;color:var(--slate-2);background:transparent}.sfx .ivunit button.on{background:#fff;color:var(--blue);box-shadow:0 1px 2px rgba(11,37,69,.12)}
.sfx .ivunit{margin:0}
.btn.dzo{width:100%;justify-content:center;background:transparent;border:1.5px solid rgba(255,138,128,.55);color:#FF8A80;font-weight:600}.btn.dzo:hover{background:rgba(255,138,128,.12);color:#FFB3AC}.btn.dzo .ico{width:14px;height:14px}
.next .btn.dzo{width:auto;border-color:rgba(255,138,128,.55)}
.aspick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.aspick button{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff}
.aspick button i{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex:none;margin-top:2px}
.aspick button.on{border-color:var(--blue);background:var(--blue-tint)}.aspick button.on i{border:5px solid var(--blue)}
.aspick b{display:block;font-size:.88rem;color:var(--navy,#0B2545)}.aspick small{display:block;font-size:.7rem;color:var(--slate-2);word-break:break-all}
@media (max-width:560px){ .aspick{grid-template-columns:1fr} }

/* ===== v1.10 — progress while sending ===== */
.drop .dbar{position:absolute;left:14px;right:14px;bottom:7px;height:3px;border-radius:3px;background:rgba(0,112,128,.14);overflow:hidden;font-style:normal}
.drop .dbar b{display:block;height:100%;width:0;background:var(--blue);border-radius:3px;transition:width .25s ease}
.p-foot.prog-on{display:block;padding-top:14px;padding-bottom:max(14px,env(safe-area-inset-bottom))}
.sprog{display:grid;gap:12px}
.sprog .sp-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.sprog .sp-h b{font-size:.95rem;color:var(--navy,#0B2545)}
.sprog .sp-h span{font-size:.74rem;color:var(--slate-2)}
.sprog .sp-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sprog .sp-l li{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--mist);color:var(--slate-2);font-size:.76rem;font-weight:600;line-height:1.35;transition:background .3s,color .3s}
.sprog .sp-l li i{width:20px;height:20px;border-radius:50%;flex:none;display:grid;place-items:center;border:1.5px solid var(--line);background:#fff}
.sprog .sp-l li i .ico{width:12px;height:12px}
.sprog .sp-l li small{display:block;font-weight:500;font-size:.68rem;margin-top:2px;font-variant-numeric:tabular-nums}
.sprog .sp-l li.on{background:var(--blue-tint);color:var(--blue)}.sprog .sp-l li.on i{border-color:var(--blue);color:var(--blue)}
.sprog .sp-l li.dn{color:var(--navy,#0B2545)}.sprog .sp-l li.dn i{background:var(--blue);border-color:var(--blue);color:#fff}
.sprog .sp-l li.bad{background:#FDECEF;color:var(--red,#BD002D)}.sprog .sp-l li.bad i{border-color:var(--red,#BD002D);color:var(--red,#BD002D)}
.sprog .sp-bar{height:6px;border-radius:6px;background:var(--mist-2,#E7ECF3);overflow:hidden}
.sprog .sp-bar b{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,var(--blue),#2BA3B3);transition:width .4s ease}
.sprog.ok .sp-bar b{background:#17804A}.sprog.ok .sp-h b{color:#17804A}
.sprog.ok .sp-l li i{background:#17804A;border-color:#17804A}
.sprog .sp-err{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sprog .sp-err span{flex:1 1 240px;font-size:.78rem;color:var(--red,#BD002D);font-weight:600}
@media (max-width:760px){ .sprog .sp-l{grid-template-columns:1fr 1fr} }
@media (prefers-reduced-motion:reduce){ .sprog .sp-bar b,.drop .dbar b{transition:none} }
