@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Public+Sans:wght@400;500;600;700;800&display=swap');
:root{--green:#22a651;--dark:#0c0e0c;--ink:#101410;--muted:#6d766f;--line:#e2e7df;--paper:#fafbf8;--heading:'Public Sans',sans-serif;--body:'Montserrat',sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--body);color:var(--ink);font-size:14px;background:var(--paper)}h1,h2,h3,.brand{font-family:var(--heading)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}:focus-visible{outline:3px solid #57942d;outline-offset:4px}.login-page{min-height:100vh;display:grid;grid-template-columns:46% 54%}.brand-panel{position:relative;overflow:hidden;background:var(--dark);color:#fff;padding:48px 56px 32px;display:flex;flex-direction:column;min-height:100vh}.brand{display:inline-flex;align-items:center;font-weight:800;font-size:31px;letter-spacing:-1.5px;width:fit-content}.brand-symbol{display:inline-flex;align-items:center;justify-content:center;width:39px;height:39px;background:var(--green);color:var(--dark);border-radius:11px;font-size:35px;line-height:1;margin-right:11px;letter-spacing:-4px;padding-right:5px}.brand-symbol span{font-size:24px;align-self:flex-end;margin-bottom:5px}.brand-dot,.accent{color:var(--green)}.brand-story{margin:auto 0;padding:90px 0 120px;position:relative}.eyebrow,.section-number{font-size:10px;font-weight:700;letter-spacing:2px}.eyebrow{color:#c4d2c5;display:flex;gap:10px;align-items:center}.status-dot{width:7px;height:7px;background:#22a651;border-radius:50%;display:inline-block;flex-shrink:0}.eyebrow .status-dot{background:var(--green)}h1{font-size:clamp(38px,4.1vw,66px);letter-spacing:-2.6px;line-height:1.1;margin:27px 0 24px;font-weight:500}.brand-story p{color:#bac9bd;font-size:14px;line-height:1.9}.brand-lines{position:absolute;right:-120px;bottom:-70px;width:330px;height:250px;transform:rotate(-30deg);opacity:.3;pointer-events:none}.brand-lines span{position:absolute;border:1px solid #a8cf87;border-radius:70px;width:120px;height:310px;transform:rotate(30deg)}.brand-lines span:nth-child(2){left:75px;top:15px}.brand-lines span:nth-child(3){left:150px;top:30px}.brand-footer{display:flex;justify-content:space-between;font-size:10px;color:#9aad9c;gap:16px}.brand-footer span:last-child{letter-spacing:1px}.login-main{display:flex;flex-direction:column;padding:37px 48px 27px;min-width:0;background:#fff}.top-note{align-self:flex-end;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.login-card{width:100%;max-width:400px;margin:auto;padding:64px 0}.section-number{color:#678256;font-size:9px;letter-spacing:1.6px}h2{font-size:35px;letter-spacing:-1.2px;font-weight:600;margin:18px 0 12px;line-height:1.2}.muted{color:var(--muted);line-height:1.8;font-size:13px;margin:0 0 30px}.field{margin:21px 0}label{font-weight:600;font-size:12px;display:block;margin-bottom:9px}input{width:100%;border:1px solid #dce3d9;background:#fff;border-radius:8px;padding:15px;font-size:12px;color:var(--ink);height:50px}input::placeholder{color:#9aA29b}.password-input{position:relative}.password-input input{padding-right:80px}.password-input button{position:absolute;right:13px;top:0;height:50px;border:0;background:none;color:#6b766d;font-size:10px}.primary-button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-radius:8px;background:var(--green);padding:16px 19px;margin-top:26px;font-weight:700;font-size:12px;color:#071309;min-height:51px;transition:background .2s}.primary-button:hover{background:#269b4e}.primary-button>span:last-child{font-size:21px;font-weight:400;line-height:16px}.first-access{display:flex;gap:9px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:25px;font-size:11px;color:var(--muted)}.text-button{border:0;background:none;padding:3px 0;color:var(--dark);font-size:11px;font-weight:700}.text-button:hover{text-decoration:underline}.security-note{border-top:1px solid var(--line);padding-top:24px;margin-top:32px;display:flex;justify-content:center;align-items:center;gap:9px;font-size:10px;color:#899287}.login-footer{display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#8c938b}.feedback{padding:14px;background:#f7eee9;color:#814725;font-size:12px;line-height:1.6;border-radius:8px}.feedback.success{background:#edf7e5;color:#365824}small{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:9px}.portal-page{min-height:100vh;display:flex;flex-direction:column}.portal-header{background:#fff;border-bottom:1px solid var(--line);padding:24px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px}.portal-header .brand{font-size:27px}.account{display:flex;align-items:center;gap:13px}.avatar{width:36px;height:36px;border-radius:50%;background:#e7f2dd;display:grid;place-items:center;font-weight:700;font-family:var(--heading)}.account-name{font-size:11px;font-weight:600}.account-role{font-size:9px;color:var(--muted);margin-top:4px}.logout{border:1px solid var(--line);border-radius:6px;background:#fff;padding:9px 14px;font-size:11px;margin-left:14px}.portal-main{width:100%;max-width:1280px;margin:0 auto;padding:68px 6%;flex:1}.breadcrumb{font-size:10px;letter-spacing:1px;color:var(--muted);margin-bottom:36px}.welcome{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-bottom:1px solid var(--line);padding-bottom:36px}.welcome h1{font-size:42px;margin:12px 0 12px;letter-spacing:-1.8px}.welcome p{color:var(--muted);line-height:1.8;font-size:12px;margin:0}.access-badge{padding:9px 12px;border:1px solid #d9e7d0;border-radius:20px;font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:7px}.portals-heading{display:flex;align-items:center;gap:12px;margin:34px 0 23px}.portals-heading h2{font-size:18px;letter-spacing:-.5px;margin:0}.count{font-size:10px;background:#e8edE3;border-radius:5px;padding:4px 7px}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.portal-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;display:flex;flex-direction:column;min-height:285px;transition:transform .2s,border-color .2s,box-shadow .2s}.portal-card:hover{transform:translateY(-3px);border-color:#a8c58a;box-shadow:0 10px 25px #18351b08}.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-icon{background:#edf7e4;border-radius:12px;width:49px;height:49px;display:grid;place-items:center;color:#3b652c}.construction{font-size:9px;color:#62794e;background:#f1f5ec;padding:6px 9px;border-radius:15px}.portal-card h3{font-size:21px;letter-spacing:-.5px;margin:24px 0 10px}.portal-card p{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 24px}.card-link{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-top:auto;font-size:11px;font-weight:700}.portal-footer{border-top:1px solid var(--line);padding:23px 6%;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}@media(min-width:1600px){.brand-panel{padding-left:80px}.login-card{max-width:430px}}@media(max-width:1050px){.brand-panel{padding:35px}.login-main{padding:35px}.portal-grid{grid-template-columns:repeat(2,1fr)}h1{font-size:44px}.brand-footer{flex-direction:column}.login-footer{font-size:8px}}@media(max-width:700px){.login-page{display:block}.brand-panel{min-height:0;padding:25px}.brand-story,.brand-footer{display:none}.brand{font-size:27px}.login-main{padding:24px;min-height:calc(100svh - 89px)}.top-note{font-size:9px}.login-card{padding:48px 0;max-width:420px}.login-footer{font-size:8px}h2{font-size:30px}.portal-header{padding:20px}.account-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:none}.logout{margin-left:0}.portal-header .brand{font-size:22px}.portal-header .brand-symbol{width:32px;height:32px;font-size:29px}.portal-main{padding:40px 24px}.welcome{align-items:flex-start;flex-direction:column}.welcome h1{font-size:35px}.portal-grid{grid-template-columns:1fr}.portal-footer{padding:20px;gap:15px;font-size:9px}.portal-card{min-height:270px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Official Nucleofix identity. Source artwork is preserved without edits. */
.official-brand{display:inline-flex;padding:15px 20px;background:#fff;border-radius:4px;letter-spacing:normal;flex-shrink:0}
.brand-logo{position:relative;display:block;width:225px;height:65px;overflow:hidden}
.brand-logo img{position:absolute;width:125.565%;height:auto;max-width:none;left:-13.033%;top:-157.391%}
.brand-panel{background:#0c0e0c}
.brand-story{isolation:isolate}
.brand-pattern{position:absolute;z-index:-1;right:-110px;bottom:-70px;width:360px;height:265px;background:url('../assets/nucleofix-pattern.png') center/280px;opacity:.3;pointer-events:none;mask-image:linear-gradient(to bottom,transparent,#000 40%)}
.brand-story p{color:#bdc5be}
.brand-footer{color:#929c94}
.section-number{color:#28743e}
.portal-header .official-brand{padding:0;background:transparent}
.portal-header .brand-logo{width:190px;height:55px}
.access-badge{border-color:#cce4d3}
.avatar,.app-icon{background:#e8f5ec;color:#1e7138}
.construction{background:#edf5ef;color:#286b3c}
.portal-card:hover{border-color:#22a651}
.portal-card .card-link{color:#236e38}
@media(max-width:700px){.brand-panel{padding:22px 24px}.brand-panel .official-brand{padding:10px 15px}.brand-logo{width:170px;height:49px}.login-main{min-height:calc(100svh - 113px)}.portal-header .brand-logo{width:130px;height:38px}.brand-pattern{display:none}}

.brand-panel .official-brand{background:transparent;padding:0;border-radius:0}
.manage-users-button{max-width:230px;margin-top:25px}.users-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:32px;margin-top:32px}.user-form-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;align-self:start}.user-form-card h2,.users-list h2,.invite-result h2{font-size:23px;margin:0 0 18px}.user-form-card select{width:100%;font:inherit;border:1px solid #dce3d9;border-radius:8px;padding:14px;background:#fff}.user-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.user-row h3{font-size:15px;margin:0 0 7px}.user-row p{font-size:11px;overflow-wrap:anywhere;margin:0 0 12px;color:var(--muted)}.user-status{font-size:10px;color:var(--muted);display:inline-block;margin-top:8px}.user-row .logout{margin:0;white-space:nowrap}.invite-result{background:#edf7ef;border:1px solid #cce4d3;padding:24px;border-radius:12px;margin-top:28px}.invite-result p{font-size:12px;line-height:1.7;overflow-wrap:anywhere}.invite-copy{display:flex;align-items:center;gap:10px}.invite-copy .logout{margin:0;white-space:nowrap}@media(max-width:850px){.users-layout{grid-template-columns:1fr}.user-row{flex-wrap:wrap}.invite-copy{align-items:stretch;flex-direction:column}}
.microsoft-button{width:100%;min-height:52px;line-height:1.4;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #bbc5bd;border-radius:8px;padding:14px;font-weight:600;font-size:13px;background:white}.microsoft-button:hover{background:#f2f6f1}#microsoft-signin small{text-align:center}.login-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:10px;margin:25px 0}.login-divider:before,.login-divider:after{content:'';flex:1;border-top:1px solid var(--line)}.microsoft-link-form{margin-top:20px}.microsoft-link-form .logout{margin-left:0}

.microsoft-button svg{display:block;flex:0 0 20px}#microsoft-signin{margin-top:26px}.login-divider{text-align:center;line-height:1.5}
.user-row{flex-wrap:wrap}.user-actions{display:flex;gap:10px;align-items:center;margin-left:auto}.user-actions form{margin:0}.user-edit{flex-basis:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px) auto;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px}.user-edit[hidden]{display:none}.user-edit label{margin-bottom:6px}.user-edit input{height:44px}.user-edit select{width:100%;font:inherit;border:1px solid #dce3d9;border-radius:8px;padding:12px;background:#fff;height:44px}.user-edit button{height:44px}.user-edit small{grid-column:1/-1;margin:0}.logout.danger{color:#9b2c1f;border-color:#efcfc8}.logout.danger:hover{background:#fbefec}@media(max-width:700px){.user-edit{grid-template-columns:1fr}.user-actions{margin-left:0}}
