/* StudyPulse Materio exact auth bridge
   Uses the real Materio auth assets/classes from the uploaded template while keeping Flask forms intact. */
:root{--mui-primary:#00AEEF;--mui-primary-dark:#7e4ee5;--mui-success:#72F000;--mui-info:#16b1ff;--mui-warning:#ffb400;--mui-error:#ff4c51;--mui-bg:#F3FBFF;--mui-paper:#fff;--mui-text:#2f2b3d;--mui-muted:rgba(47,43,61,.68);--mui-disabled:rgba(47,43,61,.40);--mui-divider:rgba(47,43,61,.12);--mui-shadow:0 3px 12px rgba(47,43,61,.14);--mui-shadow-lg:0 10px 40px rgba(47,43,61,.18)}
html[data-bs-theme="dark"]{--mui-bg:#28243d;--mui-paper:#312d4b;--mui-text:#e7e3fc;--mui-muted:rgba(231,227,252,.68);--mui-disabled:rgba(231,227,252,.40);--mui-divider:rgba(231,227,252,.12)}
html,body{min-height:100%}
body.sp-auth-materio{margin:0!important;min-height:100vh!important;font-family:Inter,"Public Sans",Roboto,Arial,sans-serif!important;background:var(--mui-bg)!important;color:var(--mui-text)!important;overflow-x:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}
body.sp-auth-materio a{color:var(--mui-primary)!important;text-decoration:none!important;font-weight:500!important}
body.sp-auth-materio .auth-wrap{width:100%!important;max-width:none!important;min-height:100vh!important;border-radius:0!important;overflow:hidden!important;box-shadow:none!important;background:var(--mui-bg)!important;display:flex!important;align-items:stretch!important;justify-content:center!important}
body.sp-auth-materio .auth-hero.materio-auth-hero{position:relative!important;display:flex!important;flex:1 1 auto!important;align-items:center!important;justify-content:center!important;min-height:100vh!important;background:transparent!important;color:var(--mui-text)!important;overflow:hidden!important;padding:3rem!important;order:0!important}
body.sp-auth-materio .auth-hero.materio-auth-hero::before,body.sp-auth-materio .auth-hero.materio-auth-hero::after{display:none!important;content:none!important}
body.sp-auth-materio .auth-hero .plb-12{padding-block:3rem!important;padding-inline-start:3rem!important;position:relative!important;z-index:2!important;opacity:1!important;pointer-events:auto!important}
body.sp-auth-materio .materio-auth-main-img{max-height:500px!important;max-width:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;display:block!important;filter:drop-shadow(0 24px 44px rgba(47,43,61,.14))!important}
body.sp-auth-materio .materio-auth-tree{position:absolute!important;left:0!important;bottom:0!important;z-index:3!important;width:170px!important;height:auto!important;opacity:1!important;pointer-events:none!important}
body.sp-auth-materio .materio-auth-tree-2{position:absolute!important;right:2.5rem!important;bottom:0!important;z-index:3!important;width:120px!important;height:auto!important;opacity:1!important;pointer-events:none!important}
body.sp-auth-materio .materio-auth-mask{position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:none!important;height:auto!important;z-index:1!important;opacity:1!important;pointer-events:none!important}
body.sp-auth-materio .auth-panel{flex:0 0 480px!important;width:480px!important;min-height:100vh!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--mui-paper)!important;padding:3rem!important;display:flex!important;flex-direction:column!important;justify-content:center!important;position:relative!important;z-index:4!important;color:var(--mui-text)!important}
body.sp-auth-materio .auth-panel-logo img,body.sp-auth-materio .brand-mini img{height:44px!important;max-height:44px!important;width:auto!important;object-fit:contain!important}
body.sp-auth-materio .auth-title,body.sp-auth-materio h1,body.sp-auth-materio h2{font-family:Inter,"Public Sans",Roboto,Arial,sans-serif!important;font-weight:600!important;letter-spacing:0!important;color:var(--mui-text)!important;margin-block-end:.375rem!important}
body.sp-auth-materio .auth-sub,body.sp-auth-materio .text-muted,body.sp-auth-materio .choice-desc,body.sp-auth-materio .hint,body.sp-auth-materio .step-sub,body.sp-auth-materio .small{color:var(--mui-muted)!important}
/* Register/signup pages without an HTML hero still get the real Materio illustration stack */
body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero){justify-content:flex-end!important;align-items:center!important;padding:2rem clamp(1.5rem,7vw,6rem) 2rem min(50vw,680px)!important;background:var(--mui-bg)!important}
body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero)::before{content:""!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(50vw,720px)!important;background:url('/static/design-systems/materio/assets/auth-register-illustration.png') center 50%/min(78%,620px) auto no-repeat!important;pointer-events:none!important;z-index:0!important}
body.sp-auth-materio.sp-auth-login-page.sp-auth-illustrated:not(.sp-auth-has-hero)::before{background-image:url('/static/design-systems/materio/assets/auth-login-illustration.png')!important}
body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero)::after{content:""!important;position:fixed!important;left:0!important;right:auto!important;bottom:0!important;top:auto!important;width:min(50vw,720px)!important;height:260px!important;background:url('/static/design-systems/materio/assets/auth-mask-register.png') center bottom/100% auto no-repeat!important;pointer-events:none!important;z-index:1!important}
body.sp-auth-materio.sp-auth-login-page.sp-auth-illustrated:not(.sp-auth-has-hero)::after{background-image:url('/static/design-systems/materio/assets/auth-mask-light.png')!important}
body.sp-auth-materio .page-wrap,body.sp-auth-materio .box,body.sp-auth-materio .auth-shell{position:relative!important;z-index:5!important;width:100%!important;max-width:560px!important;background:var(--mui-paper)!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:2.5rem!important;color:var(--mui-text)!important}
body.sp-auth-materio .page-wrap.wide{max-width:720px!important}
body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .page-wrap::before,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .box::before{content:""!important;position:fixed!important;left:0!important;bottom:0!important;width:180px!important;height:220px!important;background:url('/static/design-systems/materio/assets/auth-register-tree.png') left bottom/contain no-repeat!important;z-index:2!important;pointer-events:none!important}
body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .page-wrap::after,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .box::after{content:""!important;position:fixed!important;left:min(42vw,560px)!important;bottom:0!important;width:120px!important;height:170px!important;background:url('/static/design-systems/materio/assets/auth-register-tree-2.png') left bottom/contain no-repeat!important;z-index:2!important;pointer-events:none!important}
body.sp-auth-materio.sp-auth-login-page.sp-auth-illustrated:not(.sp-auth-has-hero) .page-wrap::before,body.sp-auth-materio.sp-auth-login-page.sp-auth-illustrated:not(.sp-auth-has-hero) .box::before{background-image:url('/static/design-systems/materio/assets/auth-login-tree.png')!important}
body.sp-auth-materio.sp-auth-login-page.sp-auth-illustrated:not(.sp-auth-has-hero) .page-wrap::after,body.sp-auth-materio.sp-auth-login-page.sp-auth-illustrated:not(.sp-auth-has-hero) .box::after{background-image:url('/static/design-systems/materio/assets/auth-login-tree-2.png')!important}
/* Exact Materio outlined floating labels. Removes placeholder/icon collision. */
body.sp-auth-materio .form-group,body.sp-auth-materio .field,body.sp-auth-materio .sp-floating-field,body.sp-auth-materio .sp-login-floating{position:relative!important;margin-block-end:1.25rem!important}
body.sp-auth-materio .input-icon{position:relative!important}
body.sp-auth-materio .input-icon .icon{position:absolute!important;left:.875rem!important;top:50%!important;transform:translateY(-50%)!important;color:var(--mui-muted)!important;z-index:2!important;font-size:1rem!important}
body.sp-auth-materio .form-group>.form-label,body.sp-auth-materio .field>label,body.sp-auth-materio .sp-floating-field>label,body.sp-auth-materio .sp-login-floating>.form-label{position:absolute!important;top:50%!important;left:.875rem!important;transform:translateY(-50%)!important;background:var(--mui-paper)!important;color:var(--mui-muted)!important;padding:0 .35rem!important;margin:0!important;font-size:.9375rem!important;font-weight:400!important;line-height:1!important;z-index:4!important;pointer-events:none!important;transition:all .15s ease!important}
body.sp-auth-materio .form-group>.form-label,body.sp-auth-materio .sp-login-floating>.form-label{left:2.45rem!important}
body.sp-auth-materio .form-group:focus-within>.form-label,body.sp-auth-materio .form-group.has-value>.form-label,body.sp-auth-materio .field:focus-within>label,body.sp-auth-materio .field.has-value>label,body.sp-auth-materio .sp-floating-field:focus-within>label,body.sp-auth-materio .sp-floating-field.has-value>label,body.sp-auth-materio .sp-login-floating:focus-within>.form-label,body.sp-auth-materio .sp-login-floating.has-value>.form-label{top:0!important;left:.75rem!important;transform:translateY(-50%) scale(.86)!important;color:var(--mui-primary)!important}
body.sp-auth-materio input:not([type=checkbox]):not([type=radio]):not([type=file]),body.sp-auth-materio select,body.sp-auth-materio textarea,body.sp-auth-materio .form-control,body.sp-auth-materio .form-select,body.sp-auth-materio .fc,body.sp-auth-materio .hrp-input{min-height:50px!important;width:100%!important;border:1px solid var(--mui-divider)!important;border-radius:.375rem!important;background:transparent!important;color:var(--mui-text)!important;box-shadow:none!important;outline:0!important;padding:.875rem .875rem .5rem!important;font-size:.9375rem!important}
body.sp-auth-materio .form-group .form-control,body.sp-auth-materio .sp-login-floating .form-control{padding-left:2.625rem!important}
body.sp-auth-materio input::placeholder,body.sp-auth-materio .form-control::placeholder{color:transparent!important}
body.sp-auth-materio input:focus,body.sp-auth-materio select:focus,body.sp-auth-materio textarea:focus,body.sp-auth-materio .form-control:focus,body.sp-auth-materio .form-select:focus{border-color:var(--mui-primary)!important;box-shadow:0 0 0 .18rem rgba(140,87,255,.16)!important}
body.sp-auth-materio .btn-primary,body.sp-auth-materio .btn-primary-hrp,body.sp-auth-materio .btn-p,body.sp-auth-materio .btn-submit,body.sp-auth-materio .btn-main.primary,body.sp-auth-materio button[type=submit]{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.5rem!important;width:100%;min-height:42px!important;border:1px solid var(--mui-primary)!important;border-radius:.375rem!important;background:var(--mui-primary)!important;color:#fff!important;box-shadow:0 2px 6px rgba(140,87,255,.30)!important;font-weight:500!important;text-transform:none!important;padding:.625rem 1.25rem!important}
body.sp-auth-materio .btn-primary:hover,body.sp-auth-materio .btn-primary-hrp:hover,body.sp-auth-materio .btn-p:hover,body.sp-auth-materio .btn-submit:hover,body.sp-auth-materio .btn-main.primary:hover,body.sp-auth-materio button[type=submit]:hover{background:var(--mui-primary-dark)!important;border-color:var(--mui-primary-dark)!important;transform:none!important}
body.sp-auth-materio .btn-google,body.sp-auth-materio .btn-outline,body.sp-auth-materio .btn-main.ghost{border:1px solid var(--mui-divider)!important;border-radius:.375rem!important;background:transparent!important;color:var(--mui-text)!important;box-shadow:none!important}
body.sp-auth-materio .card-choice,body.sp-auth-materio .step-card,body.sp-auth-materio .plan-choice,body.sp-auth-materio .summary-card,body.sp-auth-materio .file-field{border:1px solid var(--mui-divider)!important;border-radius:.5rem!important;background:var(--mui-paper)!important;box-shadow:var(--mui-shadow)!important}
body.sp-auth-materio .choice-icon,body.sp-auth-materio .step-icon,body.sp-auth-materio .auth-panel-logo-icon,body.sp-auth-materio .auth-logo-icon{background:rgba(140,87,255,.12)!important;color:var(--mui-primary)!important;border-radius:.5rem!important}
body.sp-auth-materio .progress-dots .dot.active,body.sp-auth-materio .dot.active{background:var(--mui-primary)!important;border-color:var(--mui-primary)!important}
@media(max-width:900px){body.sp-auth-materio{padding:1.5rem!important}body.sp-auth-materio .auth-wrap{display:block!important;min-height:auto!important;background:transparent!important}body.sp-auth-materio .auth-hero.materio-auth-hero{display:none!important}body.sp-auth-materio .auth-panel,body.sp-auth-materio .page-wrap,body.sp-auth-materio .page-wrap.wide,body.sp-auth-materio .box{width:100%!important;max-width:560px!important;min-height:auto!important;margin:0 auto!important;border-radius:.75rem!important;box-shadow:var(--mui-shadow-lg)!important;padding:1.75rem!important}body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero){padding:1.5rem!important;justify-content:center!important}body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero)::before,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero)::after,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .page-wrap::before,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .page-wrap::after,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .box::before,body.sp-auth-materio.sp-auth-illustrated:not(.sp-auth-has-hero) .box::after{display:none!important}}

/* StudyPulse register pages: no left artwork + full-width registration containers */
body.sp-auth-materio.sp-auth-register-page{
  justify-content:center!important;
  align-items:flex-start!important;
  padding:2rem!important;
  background:var(--mui-bg)!important;
}
body.sp-auth-materio.sp-auth-register-page::before,
body.sp-auth-materio.sp-auth-register-page::after,
body.sp-auth-materio.sp-auth-register-page .page-wrap::before,
body.sp-auth-materio.sp-auth-register-page .page-wrap::after,
body.sp-auth-materio.sp-auth-register-page .box::before,
body.sp-auth-materio.sp-auth-register-page .box::after{
  content:none!important;
  display:none!important;
  background:none!important;
}
body.sp-auth-materio.sp-auth-register-page .page-wrap,
body.sp-auth-materio.sp-auth-register-page .page-wrap.wide,
body.sp-auth-materio.sp-auth-register-page .register-choice-wrap{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:2.5rem!important;
}
body.sp-auth-materio.sp-auth-register-page .steps-container,
body.sp-auth-materio.sp-auth-register-page form{
  width:100%!important;
}
@media(max-width:600px){
  body.sp-auth-materio.sp-auth-register-page{padding:1rem!important;}
  body.sp-auth-materio.sp-auth-register-page .page-wrap,
  body.sp-auth-materio.sp-auth-register-page .page-wrap.wide,
  body.sp-auth-materio.sp-auth-register-page .register-choice-wrap{padding:1.25rem!important;}
}

