.app-loader{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1200;background-color:#080a1073;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.app-loader .message{color:#f15a4a;background-color:#c7c7c7;border-radius:999px;padding:1rem 2rem;font-size:1.13rem;box-shadow:0 4px 12px #0a0a0a14}
.app-modal{z-index:1000;width:100vw;height:100vh;position:fixed;top:0;left:0}.app-modal .modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#080a1073;justify-content:center;align-items:center;width:100%;height:100%;animation:.25s cubic-bezier(.16,1,.3,1) modal-fade;display:flex}.app-modal .modal-overlay .modal-container{background-color:#fff;border-radius:16px;flex-direction:column;width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);margin:0;animation:.25s cubic-bezier(.16,1,.3,1) modal-pop;display:flex;overflow:hidden;box-shadow:0 12px 32px #0a0a0a24}.app-modal .modal-overlay .modal-container.sm{max-width:420px}.app-modal .modal-overlay .modal-container.md{max-width:540px}.app-modal .modal-overlay .modal-container.lg{max-width:720px}.app-modal .modal-overlay .modal-container>*{width:100%}.app-modal .modal-overlay .modal-container .modal-header{border-bottom:1px solid #e5e5e5;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;display:flex}.app-modal .modal-overlay .modal-container .modal-header .head-title{font-family:var(--font-bricolage),sans-serif;color:#0a0a0a;margin:0;font-size:1.13rem;font-weight:600}.app-modal .modal-overlay .modal-container .modal-header .btn-icon{flex-shrink:0}.app-modal .modal-overlay .modal-container .modal-content{color:#0a0a0a;padding:1.5rem;font-size:.88rem;overflow-y:auto}.app-modal .modal-overlay .modal-container .modal-content.text-content{text-align:center;white-space:pre-line}.app-modal .modal-overlay .modal-container .modal-controls{border-top:1px solid #e5e5e5;justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.app-modal.fullscreen .modal-overlay .modal-container{width:70vw;max-width:80vw}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.app-modal .modal-overlay,.app-modal .modal-overlay .modal-container{animation:none}}
#rootPage{background:#fafafa;min-height:100vh}
