*{margin:0;padding:0}*,*:before,*:after{box-sizing:border-box}body{font-family:Nunito,sans-serif;font-weight:400;min-height:100dvh}input,button,textarea,select{font:inherit}p{text-wrap:pretty}img,video,svg{height:auto;max-width:100%}h1,h2,h3,h4,h5,h6{text-wrap:balance;font-family:Nunito,sans-serif;font-weight:700}html{font-size:100%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--primary: #7c3aed;--primary-tinted: #6d28d9;--dark: #0e1a2b;--light: #ccc;--text-dark: #333;--text-light: #777;--white: #fff}.dinggle-app{height:100dvh}.empty-button{background:none;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit}.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--white);display:flex;justify-content:space-around;align-items:center;height:70px;border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 -2px 10px #0000001a;padding-bottom:env(safe-area-inset-bottom)}.tabbar-item{background:none;border:none;font-size:24px;color:var(--dark);display:flex;justify-content:center;align-items:center;transition:all .3s ease;position:relative;z-index:1}.tabbar-item.active{background-color:var(--primary);color:var(--white);border-radius:50%;padding:12px;transform:scale(1.15);transition:all .3s ease}.tabbar-item:not(.active):hover{transform:scale(1.1);transition:transform .2s ease}.button{position:relative;display:flex;justify-content:center;width:100%;border-radius:6px;border:none;padding:.6rem 1.5rem;font-size:.95rem;cursor:pointer;transition:background .3s}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{background-color:var(--primary);color:var(--white)}.button--primary button:hover{background-color:var(--primary-tinted)}.spinner{width:1rem;height:1rem;border:2px solid var(--white);border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;padding:2rem;height:100dvh;align-items:center}.empty-state__inner{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;color:var(--text-dark)}.empty-state__image{width:10rem;margin-bottom:2rem}.empty-state__title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.empty-state__message{font-size:.9rem;color:var(--text-light);margin-bottom:2rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:999;animation-duration:.3s;animation-fill-mode:forwards}.fade-in{animation-name:fadeIn}.fade-out{animation-name:fadeOut}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.modal-container{background:var(--white);border-radius:10px;padding:1.5rem;max-width:500px;width:90%;max-height:94dvh;position:relative;transform:translateY(-20px);animation:slideIn .3s ease-out forwards}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:.5rem;right:.55rem;font-size:1.25rem;background:transparent;border:none;cursor:pointer}
