.badge-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.badge-modal{position:relative;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;padding:32px;max-width:400px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5);border:1px solid hsla(0,0%,100%,.1);animation:slideUp .3s ease}.badge-modal__close{position:absolute;top:16px;right:16px;background:hsla(0,0%,100%,.1);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:hsla(0,0%,100%,.7);transition:all .2s ease}.badge-modal__close:hover{background:hsla(0,0%,100%,.2);color:#fff}.badge-modal__emblem{display:flex;justify-content:center;margin-bottom:20px}.badge-modal__title{text-align:center;color:#fff;font-size:24px;font-weight:600;margin:0 0 8px}.badge-modal__description{text-align:center;color:hsla(0,0%,100%,.7);font-size:14px;margin:0 0 20px;line-height:1.5}.badge-modal__level{text-align:center;margin-bottom:16px}.badge-modal__level-current{color:#667eea;font-size:20px;font-weight:600}.badge-modal__level-max{color:hsla(0,0%,100%,.4);font-size:16px}.badge-modal__progress{margin-bottom:20px}.badge-modal__progress-bar{height:8px;background:hsla(0,0%,100%,.1);border-radius:4px;overflow:hidden;margin-bottom:8px}.badge-modal__progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;transition:width .5s ease}.badge-modal__progress-text{text-align:center;color:hsla(0,0%,100%,.5);font-size:12px}.badge-modal__maxed{text-align:center;color:gold;font-size:16px;font-weight:500;margin-bottom:20px;padding:12px;background:rgba(255,215,0,.1);border-radius:8px}.badge-modal__requirements{background:hsla(0,0%,100%,.03);border-radius:8px;padding:16px;margin-bottom:20px}.badge-modal__requirements h3{color:hsla(0,0%,100%,.9);font-size:14px;font-weight:600;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.badge-modal__requirements ul{margin:0;padding:0 0 0 20px;color:hsla(0,0%,100%,.6);font-size:13px;line-height:1.8}.badge-modal__display-toggle{display:block;width:100%;padding:14px;background:rgba(102,126,234,.1);border:1px solid rgba(102,126,234,.3);border-radius:8px;color:#667eea;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}.badge-modal__display-toggle:hover{background:rgba(102,126,234,.2);border-color:rgba(102,126,234,.5)}.badge-modal__display-toggle--active{background:rgba(102,126,234,.2);border-color:#667eea;color:#fff}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.badge-grid--empty{text-align:center;padding:32px 16px;background:hsla(0,0%,100%,.03);border-radius:12px;border:1px dashed hsla(0,0%,100%,.1)}.badge-grid__empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.badge-grid__empty-text{color:hsla(0,0%,100%,.7);font-size:16px;margin:0 0 8px}.badge-grid__empty-hint{color:hsla(0,0%,100%,.4);font-size:14px;margin:0}.badge-grid{padding:16px 0}.badge-grid__category-title,.badge-grid__section-title{color:hsla(0,0%,100%,.9);font-size:14px;font-weight:600;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:8px}.badge-grid__category-count{background:hsla(0,0%,100%,.1);padding:2px 8px;border-radius:10px;font-size:12px;font-weight:400}.badge-grid__featured{margin-bottom:24px}.badge-grid__featured-list{display:flex;gap:24px;justify-content:center;flex-wrap:wrap}.badge-grid__featured-item{display:flex;flex-direction:column;align-items:center;gap:8px}.badge-grid__badge-name{color:hsla(0,0%,100%,.7);font-size:12px;text-align:center;max-width:100px}.badge-grid__all{display:flex;flex-direction:column;gap:20px}.badge-grid__category{padding:12px;background:hsla(0,0%,100%,.02);border-radius:8px}.badge-grid__category-list{display:flex;gap:12px;flex-wrap:wrap}.badge-grid__item{display:flex;align-items:center;justify-content:center}.badge-grid__manage,.badge-grid__toggle{display:block;width:100%;padding:12px;margin-top:16px;background:rgba(102,126,234,.1);border:1px solid rgba(102,126,234,.3);border-radius:8px;color:#667eea;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.badge-grid__manage:hover,.badge-grid__toggle:hover{background:rgba(102,126,234,.2);border-color:rgba(102,126,234,.5)}.badge-grid__manage{background:transparent;border-color:hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.7)}.badge-grid__manage:hover{background:hsla(0,0%,100%,.05);color:hsla(0,0%,100%,.9)}.badge-tooltip-wrapper{position:relative;display:inline-block}.badge-tooltip{position:absolute;z-index:1000;background:var(--layer3-section-bg,rgba(20,20,30,.2));backdrop-filter:blur(8px) saturate(180%);-webkit-backdrop-filter:blur(8px) saturate(180%);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;padding:1rem;min-width:220px;box-shadow:0 10px 25px rgba(0,0,0,.3);animation:tooltipFadeIn .2s ease}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.badge-tooltip.top{bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:10px}.badge-tooltip.bottom{top:100%;left:50%;transform:translateX(-50%);margin-top:10px}.badge-tooltip.left{right:100%;top:50%;transform:translateY(-50%);margin-right:10px}.badge-tooltip.right{left:100%;top:50%;transform:translateY(-50%);margin-left:10px}.tooltip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.tooltip-badge-name{font-weight:600;color:#fff;font-size:.9rem}.tooltip-tier{padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;color:#000}.tooltip-level{font-size:.8rem;color:hsla(0,0%,100%,.6);margin-bottom:.75rem}.tooltip-progress-container{height:6px;background:hsla(0,0%,100%,.1);border-radius:3px;overflow:hidden;margin-bottom:.25rem}.tooltip-progress-bar{height:100%;border-radius:3px;transition:width .3s ease}.tooltip-progress-text{font-size:.75rem;color:hsla(0,0%,100%,.5);text-align:right}.tooltip-max-level{color:gold;font-weight:600;font-size:.85rem;text-align:center;padding:.5rem 0}.tooltip-requirement{margin-top:.75rem;padding-top:.75rem;border-top:1px solid hsla(0,0%,100%,.1);font-size:.8rem;color:hsla(0,0%,100%,.7)}.badge-progress-bar-container{display:flex;flex-direction:column;gap:.25rem}.badge-progress-bar-container.small{width:60px}.badge-progress-bar-container.medium{width:100px}.badge-progress-bar-container.large{width:150px}.progress-label{font-size:.7rem;color:hsla(0,0%,100%,.6);text-align:center}.progress-label .current{color:#fff;font-weight:600}.progress-label .separator{margin:0 .25rem;color:hsla(0,0%,100%,.4)}.progress-label .target{color:hsla(0,0%,100%,.6)}.progress-label .max-label{color:gold;font-weight:700}.progress-track{height:4px;background:hsla(0,0%,100%,.1);border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;transition:width .3s ease;position:relative}.progress-fill.max-level{animation:shimmer 2s infinite}@keyframes shimmer{0%{filter:brightness(1)}50%{filter:brightness(1.3)}to{filter:brightness(1)}}.max-star{position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:.6rem}