*{font-family:'Plus Jakarta Sans',sans-serif;-webkit-tap-highlight-color:transparent}
.toast{animation:slideInTop .3s ease,fadeOutTop .3s ease 2.7s forwards;pointer-events:auto}
@keyframes slideInTop{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes fadeOutTop{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
.card-hover{transition:all .3s ease}
.card-hover:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.12)}
.sidebar-item:hover{background:rgba(255,255,255,.1)}
.sidebar-item.active{background:rgba(255,255,255,.15);border-left:3px solid #fff}
@media (max-width:768px){
  .sidebar-item.active{border-left:none;border-bottom:3px solid #fff}
  aside nav{display:none !important}
  main{padding-bottom:90px !important}
}
.hide-scrollbar::-webkit-scrollbar{display:none}
.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}
body{box-sizing:border-box}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeIn .4s ease-out forwards}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.slide-up{animation:slideUp .3s cubic-bezier(.16,1,.3,1) forwards}
@supports (padding-bottom:env(safe-area-inset-bottom)){.pb-safe{padding-bottom:calc(env(safe-area-inset-bottom) + 12px)}}
#image-preview-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.9);backdrop-filter:blur(5px)}
#image-preview-modal img{margin:auto;display:block;max-width:90%;max-height:90vh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);object-fit:contain}
#image-preview-modal .close-btn{position:absolute;top:15px;right:35px;color:#f1f1f1;font-size:40px;font-weight:700;transition:.3s;cursor:pointer;z-index:10001}
#image-preview-modal .close-btn:hover{color:#bbb;text-decoration:none}