/* SlideCommit interaction for the Flask login form. The normal submit button remains a no-JS fallback. */
.slide-commit{display:none;width:100%;margin-top:7px}
.slide-ready .slide-commit{display:block}
.slide-ready .login-submit-fallback{display:none}
.slide-commit__track{position:relative;height:58px;width:100%;border:1px solid #cbd8d6;border-radius:11px;background:#fff;box-shadow:0 8px 22px #173b3d0e;overflow:hidden;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.slide-commit[data-held] .slide-commit__track{cursor:grabbing}
.slide-commit[data-phase="pending"] .slide-commit__track,.slide-commit[data-phase="done"] .slide-commit__track{cursor:default}
.slide-commit__label,.slide-commit__done{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:650;letter-spacing:.08em;white-space:nowrap;pointer-events:none}
.slide-commit__label{color:#36535a;padding-left:45px;transition:opacity .18s}
.slide-commit__fill{position:absolute;left:4px;top:4px;bottom:4px;width:50px;border-radius:8px;background:#e9f1ed;pointer-events:none}
.slide-commit__handle{position:absolute;z-index:2;left:4px;top:4px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #d1ded8;border-radius:8px;background:#fff;color:#173e43;box-shadow:0 2px 8px #0b272e1c;font-size:23px;font-weight:500;cursor:grab;outline:none;touch-action:none}
.slide-commit__handle:focus-visible{outline:3px solid #65c7b5;outline-offset:3px}
.slide-commit[data-held] .slide-commit__handle{cursor:grabbing}
.slide-commit.is-returning .slide-commit__handle{transition:transform .45s cubic-bezier(.22,1.32,.4,1)}
.slide-commit.is-returning .slide-commit__fill{transition:width .45s cubic-bezier(.22,1.32,.4,1)}
.slide-commit__spinner{display:none;width:20px;height:20px;border:2px solid #173e4350;border-top-color:#173e43;border-radius:50%;animation:slide-commit-spin .8s linear infinite}
.slide-commit[data-phase="pending"] .slide-commit__arrow{display:none}
.slide-commit[data-phase="pending"] .slide-commit__spinner{display:block}
.slide-commit[data-phase="error"] .slide-commit__track{animation:slide-commit-shake .43s ease-out}
.slide-commit[data-phase="error"] .slide-commit__handle,.slide-commit[data-phase="error"] .slide-commit__fill{background:#ffe8e5;color:#a83e3a}
.slide-commit[data-phase="done"] .slide-commit__track{background:#fff}
.slide-commit[data-phase="done"] .slide-commit__fill,.slide-commit[data-phase="done"] .slide-commit__handle{background:#e4f1e9}
.slide-commit[data-phase="done"] .slide-commit__label,.slide-commit[data-phase="done"] .slide-commit__handle{opacity:0}
.slide-commit__done{z-index:3;opacity:0;color:#27684f;font-size:14px;transition:opacity .2s}
.slide-commit[data-phase="done"] .slide-commit__done{opacity:1}
.slide-commit__message{min-height:18px;margin:9px 2px 0;color:#b3453d;font-size:12px;line-height:1.5}
.slide-commit__message:empty{min-height:0;margin:0}
@keyframes slide-commit-spin{to{transform:rotate(360deg)}}
@keyframes slide-commit-shake{0%,100%{transform:none}18%{transform:translateX(-5px)}36%{transform:translateX(5px)}56%{transform:translateX(-3px)}76%{transform:translateX(2px)}}
@media(prefers-reduced-motion:reduce){.slide-commit__track,.slide-commit__handle,.slide-commit__fill,.slide-commit__done{animation:none!important;transition:none!important}}
