/* © 2025 Matematikland – alle rettigheder forbeholdt */
.hub{width:100%;max-width:800px;display:flex;flex-direction:column;align-items:center;gap:36px;text-align:center}.hub-header{display:flex;flex-direction:column;align-items:center;gap:10px}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;width:100%}.app-card{background:var(--card);border-radius:var(--radius);padding:32px 24px;box-shadow:var(--shadow);cursor:pointer;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:12px;border:3px solid transparent;transition:all 0.22s}.app-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 10px 28px rgba(244,166,42,0.18)}.app-card.coming-soon{opacity:0.55;cursor:default;filter:grayscale(0.3)}.app-card.coming-soon:hover{transform:none;border-color:transparent;box-shadow:var(--shadow)}.app-icon{font-size:3.2rem;line-height:1}.app-name{font-family:var(--font-title);font-size:1.3rem;color:var(--text)}.app-desc{font-size:0.85rem;color:var(--text-light);line-height:1.5}.coming-soon-badge{font-size:0.72rem;background:#f0e8f8;color:var(--text-light);border-radius:99px;padding:3px 10px;font-weight:800}.hub-footer{display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:center}.hub-stat{background:var(--card);border-radius:99px;padding:10px 22px;box-shadow:var(--shadow);display:flex;align-items:center;gap:8px;font-weight:700;font-size:0.9rem;color:var(--text-light)}.hub-stat .val{font-family:var(--font-title);font-size:1.2rem;color:var(--primary)}.trophy-shelf-link{background:linear-gradient(135deg,#f4a62a,#ff9f43);color:white;border-radius:var(--radius);padding:16px 32px;font-family:var(--font-title);font-size:1.1rem;text-decoration:none;box-shadow:0 4px 16px rgba(244,166,42,0.3);display:flex;align-items:center;gap:10px;transition:all 0.2s;width:100%;justify-content:center;max-width:400px}.trophy-shelf-link:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(244,166,42,0.4)}@media (max-width:500px){.app-grid{grid-template-columns:1fr 1fr}.app-card{padding:22px 16px}.app-icon{font-size:2.4rem}}.hub-progress-card{width:100%;max-width:700px;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.hub-level-row{display:flex;align-items:center;gap:16px}.hub-level-badge{font-family:var(--font-title);font-size:1.4rem;background:linear-gradient(135deg,var(--primary),#ff9f43);color:white;border-radius:50%;width:56px;height:56px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(244,166,42,0.35);flex-shrink:0}.hub-level-info{flex:1;display:flex;flex-direction:column;gap:5px}.hub-level-title{font-family:var(--font-title);font-size:1.1rem;color:var(--text)}.hub-xp-track{width:100%;height:12px;background:#f0e8f8;border-radius:99px;overflow:hidden}.hub-xp-fill{height:100%;background:linear-gradient(90deg,var(--primary),#ff9f43);border-radius:99px;transition:width 0.6s ease}.hub-xp-label{font-size:0.78rem;color:var(--text-light);font-weight:700}.hub-progress-stats{display:flex;align-items:center;justify-content:space-around;flex-wrap:wrap;gap:8px}.hub-pstat{text-align:center}.hub-pstat-val{font-family:var(--font-title);font-size:1.3rem;color:var(--primary);display:block}.hub-pstat-lbl{font-size:0.72rem;color:var(--text-light);font-weight:700}.hub-pstat-div{width:1px;height:32px;background:#f0e8f8}.hub-bottom-row{display:flex;gap:14px;width:100%;max-width:700px;flex-wrap:wrap}.hub-big-link{flex:1;min-width:140px;border-radius:var(--radius);padding:18px 20px;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--font-title);font-size:1.1rem;color:white;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,0.12);transition:all 0.2s}.hub-big-link:hover{transform:translateY(-2px)}.trophy-link{background:linear-gradient(135deg,#f4a62a,#ff9f43)}.stats-link{background:linear-gradient(135deg,#4ecdc4,#38b2aa)}.hub-big-link-sub{font-family:var(--font-body);font-size:0.78rem;opacity:0.88;font-weight:700}@media(max-width:480px){.hub-progress-card{padding:16px}.hub-level-badge{width:48px;height:48px;font-size:1.2rem}}