@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");
body{animation:app-page-enter .28s ease-out both}
@keyframes app-page-enter{from{opacity:.72}to{opacity:1}}
.app-page-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#f4f7f4b8;backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}
.app-page-loader.is-active{opacity:1;visibility:visible}
.app-page-loader-card{display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid #dce8df;border-radius:12px;background:#fff;color:#103b2a;box-shadow:0 12px 34px #103b2a1c;font-size:13px;font-weight:700}
.app-page-spinner{width:23px;height:23px;border:3px solid #d9ecdf;border-top-color:#198a45;border-right-color:#f68b1f;border-radius:50%;animation:app-page-spin .72s linear infinite}
@keyframes app-page-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body{animation:none}.app-page-spinner{animation-duration:1.8s}.app-page-loader{transition:none}}
.app-install-trigger{display:inline-flex;min-height:38px;align-items:center;gap:7px;padding:0 12px;border:1px solid #dce8df;border-radius:9px;background:#eaf6ee;color:#103b2a;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.app-install-trigger[hidden]{display:none}.app-install-trigger:hover{background:#dff0e5;border-color:#91c5a2}
.app-install-layer{position:fixed;inset:0;z-index:10001;display:grid;place-items:center;padding:20px;background:#0d241bb8;backdrop-filter:blur(4px)}.app-install-layer[hidden]{display:none}.app-install-dialog{position:relative;width:min(430px,100%);padding:30px;border:1px solid #e1e9e3;border-radius:18px;background:#fff;text-align:center;box-shadow:0 24px 80px #07170f55;animation:app-install-pop .22s ease-out both}.app-install-dialog:focus{outline:none}.app-install-close{position:absolute;top:13px;right:13px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:9px;background:#f3f7f4;color:#526078;cursor:pointer}.app-install-logo{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 15px;border-radius:17px;background:#eaf6ee}.app-install-logo img{width:52px;height:52px;object-fit:contain}.app-install-kicker{color:#198a45;font-size:10px;font-weight:800;letter-spacing:1.3px}.app-install-dialog h2{margin:5px 0 7px;color:#103b2a;font-size:23px;letter-spacing:-.3px}.app-install-dialog>p{margin:0;color:#67766d;font-size:13px;line-height:1.6}.app-install-help{display:grid;gap:5px;margin-top:16px;padding:12px;border:1px solid #dcebe3;border-radius:10px;background:#f2f8f4;text-align:left;color:#52665a;font-size:12px}.app-install-help strong{color:#103b2a}.app-install-actions{display:flex;justify-content:center;gap:9px;margin-top:22px}.app-install-actions button{min-height:42px;padding:0 16px;border:1px solid #dce8df;border-radius:9px;background:white;color:#526078;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.app-install-actions .app-install-confirm{border-color:#103b2a;background:#103b2a;color:#fff}.app-install-actions .app-install-confirm:hover{background:#176b3c}.app-install-layer:not([hidden]){animation:app-install-fade .18s ease-out both}
@keyframes app-install-pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes app-install-fade{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.app-topbar-actions .app-install-trigger{order:3}.app-install-dialog{padding:26px 21px}}
body:has(#loginForm) .app-install-trigger{display:flex;margin:18px auto 0}
@media(prefers-reduced-motion:reduce){.app-install-dialog,.app-install-layer{animation:none}}

.app-install-open{overflow:hidden}
