html,body{min-height:100%;background:#f4f6f9;color:#111827}
.shell{min-height:100vh;display:flex;align-items:center;padding:2rem 0}
.installer{max-width:860px}
.loader{position:fixed;inset:0;z-index:3000;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center}
.steps{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.step{width:3rem;height:3rem;border-radius:100%;display:flex;align-items:center;justify-content:center;background:#e8edf4;color:#8492a6;border:2px solid #dce3ec;font-weight:700}
.step.active{background:#1f3f7a;border-color:#1f3f7a;color:#fff}
.step.visited{background:#3b82f6;border-color:#3b82f6;color:#fff}
.step.near{background:#dbe8fb;border-color:#c9daf5;color:#3b82f6}
.content{min-height:20rem}
.content h2{font-size:1.35rem;margin-bottom:1rem}
.requirement{padding:.65rem;border-radius:.4rem;margin-bottom:.5rem;background:#f8f9fa}
.requirement.ok{color:#198754}
.requirement.bad{color:#dc3545}
.actions{display:flex;justify-content:space-between;margin-top:1rem}
.progress{height:24px}
.progress-bar{width:0;transition:width .35s ease-out}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:2500}
.modal.show{display:block}
.modal-dialog{min-height:100%;display:flex;align-items:center}
#progress{text-align:center;padding:4rem 0}
#message{font-weight:600;margin-bottom:1rem}
#percent{margin-top:.75rem}
.password-toggle-addon{min-width:50px}
.password-toggle{background:transparent;color:#495057}
.password-toggle:hover,.password-toggle:focus{background:#f1f3f5;color:#0d6efd}
.automator-password-group{border-radius:var(--bs-border-radius,.375rem)}
.automator-password-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}
.automator-password-group .form-floating>.form-control{border-top-right-radius:0;border-bottom-right-radius:0}
.automator-password-group .form-control:focus{box-shadow:none}
.automator-password-group:focus-within{box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
.automator-password-group:focus-within .form-control,.automator-password-group:focus-within .input-group-text{border-color:#86b7fe!important}
@media(max-width:575.98px){.steps{overflow:hidden;justify-content:center}.step{display:none}.step.active,.step.near{display:flex}.step.near{opacity:.55}.content{min-height:0}.shell{align-items:flex-start}.installer{width:100%}}
