/* Minimal layout/utility layer (replaces Bootstrap). Class names kept so custom.css keeps working. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;height:100%}
body{margin:0;min-height:100%;display:flex;flex-direction:column;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background:#fff;-webkit-font-smoothing:antialiased}
main{flex:1 0 auto}
h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}
h1{font-size:calc(1.375rem + 1.5vw)}h2{font-size:calc(1.325rem + .9vw)}h3{font-size:calc(1.3rem + .6vw)}h4{font-size:calc(1.275rem + .3vw)}h5{font-size:1.25rem}h6{font-size:1rem}
@media (min-width:1200px){h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}}
p{margin-top:0;margin-bottom:1rem}
ul{padding-left:2rem;margin-top:0;margin-bottom:1rem}
a{color:#661aff;text-decoration:underline}
a:hover{color:#5018bf}
img,svg{vertical-align:middle}
img{max-width:100%;height:auto}
button,input,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}
button{cursor:pointer}
textarea{resize:vertical}
strong,b{font-weight:bolder}
header{display:block}

/* Grid */
.container,.container-fluid{width:100%;padding-left:.75rem;padding-right:.75rem;margin-left:auto;margin-right:auto}
.container-fluid.g-0{padding-left:0;padding-right:0}
@media (min-width:576px){.container{max-width:540px}}
@media (min-width:768px){.container{max-width:720px}}
@media (min-width:992px){.container{max-width:960px}}
@media (min-width:1200px){.container{max-width:1140px}}
@media (min-width:1400px){.container{max-width:1320px}}
.row{display:flex;flex-wrap:wrap;margin-left:-.75rem;margin-right:-.75rem}
.row>*{flex-shrink:0;width:100%;max-width:100%;padding-left:.75rem;padding-right:.75rem}
.g-0{margin-left:0;margin-right:0}.g-0>*{padding-left:0;padding-right:0}
.col-6{flex:0 0 auto;width:50%}
.col-12{flex:0 0 auto;width:100%}
@media (min-width:768px){
.col-md-3{flex:0 0 auto;width:25%}
.col-md-4{flex:0 0 auto;width:33.333333%}
.col-md-5{flex:0 0 auto;width:41.666667%}
.col-md-6{flex:0 0 auto;width:50%}
.col-md-7{flex:0 0 auto;width:58.333333%}
.col-md-8{flex:0 0 auto;width:66.666667%}
.col-md-11{flex:0 0 auto;width:91.666667%}
.col-md-12{flex:0 0 auto;width:100%}
.order-md-1{order:1}
.order-md-2{order:2}
}
@media (min-width:992px){
.col-lg-3{flex:0 0 auto;width:25%}
.col-lg-4{flex:0 0 auto;width:33.333333%}
.col-lg-5{flex:0 0 auto;width:41.666667%}
.col-lg-6{flex:0 0 auto;width:50%}
.col-lg-7{flex:0 0 auto;width:58.333333%}
.col-lg-8{flex:0 0 auto;width:66.666667%}
.col-lg-10{flex:0 0 auto;width:83.333333%}
.col-lg-12{flex:0 0 auto;width:100%}
}
@media (min-width:1200px){
.col-xl-4{flex:0 0 auto;width:33.333333%}
.col-xl-5{flex:0 0 auto;width:41.666667%}
.col-xl-6{flex:0 0 auto;width:50%}
.col-xl-8{flex:0 0 auto;width:66.666667%}
.col-xl-10{flex:0 0 auto;width:83.333333%}
.col-xl-11{flex:0 0 auto;width:91.666667%}
.col-xl-12{flex:0 0 auto;width:100%}
}

/* Utilities */
.d-flex{display:flex!important}.d-block{display:block!important}.flex-column{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-shrink-0{flex-shrink:0!important}
.justify-content-center{justify-content:center!important}.h-100{height:100%!important}.w-100{width:100%!important}
.text-center{text-align:center!important}.text-end{text-align:right!important}.text-white{color:#fff!important}.text-muted{color:#6c757d!important}
.mx-auto{margin-left:auto!important;margin-right:auto!important}.ms-auto{margin-left:auto!important}.me-auto{margin-right:auto!important}
.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.px-0{padding-left:0!important;padding-right:0!important}
.mt-1{margin-top:0.25rem!important}.mb-1{margin-bottom:0.25rem!important}.py-1{padding-top:0.25rem!important;padding-bottom:0.25rem!important}.px-1{padding-left:0.25rem!important;padding-right:0.25rem!important}.gap-1{gap:0.25rem!important}
.mt-2{margin-top:0.5rem!important}.mb-2{margin-bottom:0.5rem!important}.py-2{padding-top:0.5rem!important;padding-bottom:0.5rem!important}.px-2{padding-left:0.5rem!important;padding-right:0.5rem!important}.gap-2{gap:0.5rem!important}
.mt-3{margin-top:1rem!important}.mb-3{margin-bottom:1rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.gap-3{gap:1rem!important}
.mt-4{margin-top:1.5rem!important}.mb-4{margin-bottom:1.5rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.gap-4{gap:1.5rem!important}
.mt-5{margin-top:3rem!important}.mb-5{margin-bottom:3rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}.gap-5{gap:3rem!important}
.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.float-end{float:right!important}
@media (max-width:767.98px){.order-1{order:1}.order-2{order:2}}

/* Buttons */
.btn{display:inline-block;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:.375rem;background:transparent;transition:color .15s,background-color .15s,border-color .15s}
.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}
.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}
.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}
.btn-link{color:#661aff;text-decoration:underline}
.btn:disabled{opacity:.65;pointer-events:none}

/* Cards */
.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.175);border-radius:.375rem}
.card-body{flex:1 1 auto;padding:1rem}
.card-header{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.175)}
.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.175)}

/* Forms */
.form-label{display:inline-block;margin-bottom:.5rem}
.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #ced4da;border-radius:.375rem;transition:border-color .15s,box-shadow .15s}
.form-control:focus{border-color:#a98cff;outline:0;box-shadow:0 0 0 .25rem rgba(102,26,255,.2)}
.form-control.is-invalid{border-color:#dc3545}
.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}

/* Navbar */
.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 0}
.navbar>.container{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}
.navbar.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}
.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;white-space:nowrap;text-decoration:none}
.navbar-nav{display:flex;flex-direction:column;padding:0;margin-top:0;margin-bottom:0;list-style:none}
.nav-link{display:block;text-decoration:none}
.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}
.navbar-toggler{position:relative;padding:.25rem .75rem;font-size:1.25rem;line-height:1;background:transparent;border:1px solid transparent}
.navbar-collapse:not(.show){display:none}
@media (min-width:992px){
  .navbar{flex-wrap:nowrap;justify-content:flex-start}
  .navbar-nav{flex-direction:row}
  .navbar-collapse{display:flex!important;flex-basis:auto}
  .navbar-toggler{display:none}
}

/* Toast / form status */
.form-status{margin-top:1rem;padding:.75rem 1rem;border-radius:.375rem;font-size:.95rem}
.form-status[hidden]{display:none}
.form-status.ok{background:#e7f6ec;color:#146c2e}
.form-status.err{background:#fdecec;color:#a61b1b}
