body.re-active{margin:0;background:#0c223b;color:#132d4d}
body.re-active>.app-shell{display:none!important}
#tfeRootEntry[hidden]{display:none}
#tfeRootEntry{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;font-family:inherit}
#tfeRootEntry *{box-sizing:border-box}
.re-background{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:blur(3px);transform:scale(1.015);z-index:-2}
#tfeRootEntry:before{content:'';position:fixed;inset:0;background:linear-gradient(135deg,#071d39db,#112d49a1 55%,#06172ae8);z-index:-1}
.re-content{max-width:1500px;min-height:100svh;margin:auto;padding:32px 48px 24px;display:flex;flex-direction:column;gap:28px}
.re-brand{display:flex;align-items:center;justify-content:space-between;color:#fff;gap:24px}
.re-brand img{width:210px;height:auto;max-height:90px;object-fit:contain;padding:10px 14px;background:#fffffff2;border-radius:12px}
.re-brand span{font-size:.65rem;letter-spacing:.22em;opacity:.8}
.re-card{width:100%;max-width:620px;margin:auto;padding:38px 42px;background:#f9fbfdf2;border:1px solid #ffffffa6;border-radius:24px;box-shadow:0 28px 80px #020f254d;backdrop-filter:blur(16px)}
.re-card-front{max-width:760px}
.re-eyebrow{margin:0 0 12px;font-size:.68rem;letter-spacing:.18em;font-weight:750;color:#8b6629}
.re-card h1{margin:0;font-size:clamp(2.4rem,4.2vw,3.6rem);line-height:1.08;letter-spacing:-.045em;color:#102b4b}
.re-intro{margin:16px 0 28px;line-height:1.65;color:#587087;font-size:.95rem}
.re-roles{border:0;margin:0 0 24px;padding:0;display:grid;gap:10px}
.re-role{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid #dce3eb;border-radius:13px;background:#fff;cursor:pointer;position:relative}
.re-role input{position:absolute;opacity:0;width:1px;height:1px}
.re-role:has(input:checked){border-color:#b48735;background:#fff9eb;box-shadow:0 0 0 1px #b48735}
.re-role:has(input:focus-visible){outline:3px solid #bc9142;outline-offset:3px}
.re-number{font-size:.7rem;color:#92713a;letter-spacing:.08em}
.re-role strong{display:block;font-size:1rem;line-height:1.4;color:#102b4b}
.re-role small{display:block;font-size:.78rem;line-height:1.5;color:#607589;margin-top:3px}
.re-arrow{margin-left:auto;font-size:1.2rem;color:#9b793f}
.re-primary,.re-secondary{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;min-height:52px;border:1px solid #c49c4b;border-radius:10px;padding:15px 20px;background:#e8c66f;color:#122b45;text-decoration:none;font:750 .8rem/1.4 inherit;letter-spacing:.06em;cursor:pointer}
.re-secondary{background:#fff;border-color:#bac9d7;color:#153653}
.re-primary:disabled{opacity:.5;cursor:default}
.re-back,.re-staff{color:#526b82;font-size:.8rem;text-decoration:none}
.re-back{display:inline-block;margin-bottom:26px}
.re-staff{display:block;text-align:center;margin-top:22px}
.re-access-options{display:grid;gap:20px}.re-access-options p{font-size:.86rem;color:#5c7084}
.re-footer{display:flex;justify-content:space-between;gap:20px;color:#f0f4fa;font-size:.6rem;letter-spacing:.18em;opacity:.75}
.re-footer span{letter-spacing:0;font-size:.75rem}
#tfeRootEntry :is(a,button):focus-visible{outline:3px solid #b88932;outline-offset:4px}
/* Restyle the original, live forms; their IDs, controls and listeners remain intact. */
#tfeRootEntry .auth-panel{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;width:100%!important;max-width:none!important;margin:0!important;min-height:0!important}
#tfeRootEntry .login-form-heading,#tfeRootEntry .member-role-gateway-heading,#tfeRootEntry .member-details-heading{display:none!important}
#tfeRootEntry .auth-panel h1{font-size:2rem}
#tfeRootEntry form{display:grid;gap:16px;width:100%;margin:0}
#tfeRootEntry .login-field{display:grid;gap:8px;margin:0;font-size:.85rem;color:#173550}
#tfeRootEntry input:not([type=radio]):not([type=checkbox]):not([type=hidden]){width:100%;min-height:48px;border:1px solid #cbd7e3;border-radius:9px;padding:12px;background:#fff;color:#132f4a;font:inherit;box-shadow:none}
#tfeRootEntry .login-control{display:block}
#tfeRootEntry .primary-action{width:100%;min-height:50px;background:#d9b55d;color:#142d45;border:1px solid #b18a37;border-radius:10px;padding:14px 20px;box-shadow:none;font-weight:700}
#tfeRootEntry .member-registration-fields{display:grid;gap:16px}
#tfeRootEntry .member-registration-details[aria-hidden=false]{display:block}
#tfeRootEntry .member-registration-details .primary-action{margin-top:22px}
#tfeRootEntry .account-mode-switch{margin-top:22px;font-size:.82rem;color:#587087}
#tfeRootEntry .login-help-text{font-size:.76rem;line-height:1.6;color:#607589}
#tfeRootEntry .electrician-fields{min-width:0}
@media(max-width:800px){.re-content{padding:24px;gap:24px}.re-brand img{width:175px}.re-brand span{font-size:.55rem;letter-spacing:.1em}.re-card{padding:30px}}
@media(max-width:500px){.re-content{padding:20px 16px;gap:24px}.re-brand{justify-content:center}.re-brand span{display:none}.re-card{padding:27px 20px;border-radius:20px}.re-role{padding:14px 12px;gap:12px}.re-role small{font-size:.75rem}.re-footer{justify-content:center}.re-footer span{display:none}.re-card h1{font-size:2.5rem}.re-brand img{width:170px}}
body.re-active #tfeRootEntry .re-card{display:block!important}
body.re-active{background:#0c223b!important}
#tfeRootEntry .re-roles legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#tfeRootEntry #authPanel .account-mode-switch{display:none!important}
#tfeRootEntry #authPanel .login-help-text{color:#526b82!important;font-weight:400!important;margin-top:20px!important}
#tfeRootEntry #roleLoginForm{gap:18px!important;margin:0!important}
#tfeRootEntry #roleLoginForm .login-field{margin:0!important;gap:8px!important}
#tfeRootEntry #roleLoginForm .login-field>span:first-child{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;color:#29465e!important;opacity:1!important;font-size:.82rem!important}
#tfeRootEntry #roleLoginForm input{font-weight:400!important;padding:12px 16px!important;height:48px!important}
#tfeRootEntry #roleLoginForm .login-control:before{display:none!important}
#tfeRootEntry #roleLoginForm .primary-action{background:#e8c66f!important;color:#142d45!important;border-color:#b18a37!important;box-shadow:none!important;margin-top:0!important}
#tfeRootEntry .re-primary,#tfeRootEntry .re-secondary{font-family:inherit;font-size:.8rem;font-weight:750;line-height:1.4}
#tfeRootEntry #authPanel .login-help-text strong{color:inherit!important}
#tfeRootEntry #roleLoginForm .primary-action span{color:#142d45!important}
/* Reference-led root composition only; access and registration screens stay unchanged. */
#tfeRootEntry.re-reference .re-background{filter:blur(4px);object-position:center 46%;transform:scale(1.02)}
#tfeRootEntry.re-reference:before{background:linear-gradient(180deg,#10283d70 0%,#17334d40 48%,#07172bd9 76%,#061427ee 100%)}
.rr-composition{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:24px 32px 26px;gap:24px}
.rr-composition:before{content:'';position:absolute;left:0;right:0;top:62%;bottom:0;background:#07162950;border-top:1px solid #ffffff24;z-index:-1;backdrop-filter:blur(4px)}
.rr-brand{text-align:center;color:white}
.rr-brand img{display:block;width:280px;max-width:65vw;height:auto;margin:0 auto 14px;mask:url("./public/assets/tfe-official-logo-mask.svg") center/100% 100% no-repeat;-webkit-mask:url("./public/assets/tfe-official-logo-mask.svg") center/100% 100% no-repeat}
.rr-brand p{margin:0;font-size:.87rem;letter-spacing:.23em;line-height:1.5}
.rr-brand small{display:block;margin-top:10px;font-size:.61rem;letter-spacing:.34em}
body.re-active #tfeRootEntry .rr-main{display:flex!important;flex-direction:column;align-items:center;width:100%;max-width:460px;margin:auto;gap:24px;padding:24px 0 0}
.rr-glass{position:relative;width:100%;padding:50px 28px 26px;text-align:center;border:2px solid #fffffff0;border-radius:32px;background:linear-gradient(135deg,#ffffffec,#e7f0fbe8);box-shadow:0 0 26px #ffffff35,0 18px 45px #03132740;backdrop-filter:blur(18px);color:#102749}
.rr-home{position:absolute;top:-37px;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:74px;height:74px;border:2px solid #fff;border-radius:50%;background:#fffffff5;color:#ffbf16;box-shadow:0 0 24px #fff8}
.rr-home svg{width:40px;height:40px}
#tfeRootEntry .rr-glass h1{font-size:2.3rem;line-height:1.15;letter-spacing:-.035em;color:#102749;margin:0 0 9px}
.rr-glass>p{font-size:.92rem;line-height:1.5;color:#304b70;margin:0 0 20px}
.rr-glass .re-roles{gap:11px;margin:0}
.rr-glass .rr-role{padding:7px 14px;gap:18px;min-height:62px;border:1px solid #fff9;border-radius:16px;background:#ffffffb3;box-shadow:0 4px 14px #748da708;text-align:left;transition:background .15s,box-shadow .15s}
.rr-glass .rr-role strong{font-size:.94rem;font-weight:650;line-height:1.3}
.rr-glass .rr-role:has(input:checked){background:#fff6d8;border-color:#e4bc60;box-shadow:0 3px 16px #c4993330}
.rr-glass .rr-role:has(input:focus-visible){outline:2px solid #ae7d23;outline-offset:3px}
.rr-icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border-radius:50%;color:white;box-shadow:inset 0 1px 2px #ffffff40,0 4px 12px #102c4c15}
.rr-icon svg{width:27px;height:27px}
.rr-learner{background:#238fe6}.rr-apprentice{background:#ffbf08}.rr-electrician{background:#22a365}.rr-partner{background:#8057eb}.rr-browse{background:#48586a}
.rr-chevron{width:10px;height:17px;flex-shrink:0;margin-left:auto;color:#102749}
#tfeRootEntry .rr-enter{width:314px;max-width:90%;min-height:54px;justify-content:center;gap:26px;background:linear-gradient(110deg,#ffda30,#ffd522);border:1px solid #ffe879;border-radius:18px;font-size:.97rem;font-weight:750;letter-spacing:.12em;color:#091a29;box-shadow:0 8px 22px #03132326}
#tfeRootEntry .rr-enter span{font-size:1.45rem;line-height:1}
#tfeRootEntry .rr-enter:disabled{opacity:.65}
.rr-footer{display:flex;justify-content:space-between;align-items:center;width:100%;gap:24px;color:#fff;margin-top:8px}
.rr-values{display:flex;align-items:center;gap:20px}.rr-values>span{display:flex;align-items:center;gap:12px}.rr-values>span+span{border-left:1px solid #ffffff60;padding-left:20px}
.rr-values svg{width:29px;height:29px;flex-shrink:0}.rr-values small{font-size:.57rem;letter-spacing:.15em;line-height:1.5}
.rr-footer>p{font-size:.57rem;letter-spacing:.35em;margin:0}
.rr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:801px) and (max-height:850px){.rr-composition{padding-top:16px;padding-bottom:18px;gap:14px}.rr-brand img{width:230px;margin-bottom:8px}.rr-brand small{margin-top:5px}.rr-brand p{font-size:.72rem}.rr-glass{padding:39px 24px 20px}.rr-glass .rr-role{min-height:52px;padding-block:5px}.rr-icon{width:40px;height:40px}.rr-glass .re-roles{gap:8px}#tfeRootEntry .rr-glass h1{font-size:2rem}.rr-glass>p{margin-bottom:14px;font-size:.85rem}.rr-home{width:62px;height:62px;top:-31px}.rr-home svg{width:33px;height:33px}body.re-active #tfeRootEntry .rr-main{gap:18px;padding-top:20px}#tfeRootEntry .rr-enter{min-height:50px}}
@media(max-width:800px){.rr-composition{padding:24px 24px 22px;gap:28px}.rr-brand img{width:255px}.rr-brand p{font-size:.7rem}.rr-footer{flex-direction:column;gap:22px}.rr-values{gap:16px}.rr-values>span+span{padding-left:16px}.rr-footer>p{font-size:.5rem}}
@media(max-width:500px){.rr-composition{padding:22px 18px 20px;gap:26px}.rr-brand img{width:235px}.rr-brand p{font-size:.61rem;letter-spacing:.16em}.rr-brand small{font-size:.5rem;letter-spacing:.2em}.rr-glass{padding:43px 16px 20px;border-radius:27px}#tfeRootEntry .rr-glass h1{font-size:2rem}.rr-glass>p{font-size:.79rem}.rr-glass .rr-role{gap:12px;padding-inline:10px;min-height:58px}.rr-glass .rr-role strong{font-size:.83rem}.rr-icon{width:43px;height:43px}.rr-icon svg{width:25px;height:25px}.rr-values{gap:10px}.rr-values>span{gap:7px}.rr-values>span+span{padding-left:10px}.rr-values svg{width:23px;height:23px}.rr-values small{font-size:.45rem;letter-spacing:.08em}.rr-home{width:64px;height:64px;top:-32px}.rr-home svg{width:34px;height:34px}}
