.hidden{display:none!important}.text-sepia{color:var(--color-sepia)}.text-faded{color:var(--color-faded-sepia)}.text-copper{color:var(--color-copper)}.hover\:border-copper:hover{border-color:var(--color-copper)}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:0;align-items:stretch}@media(max-width:768px){.dashboard-columns{grid-template-columns:1fr}.dashboard-right{order:-1}}.dashboard-left,.dashboard-right{display:flex;flex-direction:column}.dashboard-left #xp-section{display:flex;flex-direction:column;flex:1}.dashboard-left #leaderboard-widget{flex:1}.heatmap-card{position:relative}.heatmap-wrapper{overflow-x:auto;display:flex;justify-content:center}.heatmap-grid{display:flex;gap:4px;min-width:fit-content}.heatmap-tooltip{position:fixed;background:var(--color-sepia);color:var(--color-warm-white);padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.4;pointer-events:none;opacity:0;transform:translate(-50%) translateY(-100%);transition:opacity .15s ease;z-index:1000;white-space:nowrap;box-shadow:0 4px 12px #5c40334d}.heatmap-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--color-sepia)}.heatmap-tooltip.visible{opacity:1}.heatmap-tooltip .tooltip-count{color:var(--color-copper);font-weight:600}.heatmap-tooltip .tooltip-future{color:var(--color-deep-parchment);font-style:italic}.heatmap-labels{display:flex;flex-direction:column;gap:2px;padding-right:4px}.heatmap-label{height:13px;font-size:9px;line-height:13px;color:var(--color-faded-sepia)}.heatmap-weeks{display:flex;gap:3px}.heatmap-week{display:flex;flex-direction:column;gap:3px}.heatmap-cell{width:13px;height:13px;border-radius:2px;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-sizing:border-box}.heatmap-cell:hover{transform:scale(1.3);box-shadow:0 2px 8px #5c40334d}.heatmap-empty{visibility:hidden}.heatmap-level-0{background:var(--color-deep-parchment);border:1px solid rgba(140,115,85,.3)}.heatmap-level-1{background:#b873334d;border:none}.heatmap-level-2{background:#b8733380;border:none}.heatmap-level-3{background:#b87333b3;border:none}.heatmap-level-4{background:var(--color-copper);border:none}.heatmap-today{outline:2px solid var(--color-copper);outline-offset:1px}.heatmap-future.heatmap-level-0{background:transparent;border:1px dashed var(--color-deep-parchment)}.heatmap-loading{padding:20px;text-align:center}.free-tier-banner{background:var(--color-aged-paper);border:1px solid var(--color-deep-parchment);border-radius:var(--radius-lg);padding:16px 20px}.limit-reached-banner{background:linear-gradient(135deg,var(--color-aged-paper) 0%,rgba(184,115,51,.1) 100%);border:2px solid var(--color-copper);border-radius:var(--radius-lg);padding:16px 20px}.progress-bar{height:6px;background:var(--color-deep-parchment);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--color-copper);border-radius:3px;transition:width .3s ease}.btn-sm{padding:6px 16px;font-size:.875rem}.xp-card{position:relative;overflow:hidden}.level-badge{display:inline-block;background:linear-gradient(135deg,var(--color-copper) 0%,#d4915a 100%);color:var(--color-warm-white);padding:4px 12px;border-radius:12px;font-weight:700;font-size:.875rem;text-shadow:0 1px 2px rgba(0,0,0,.2)}.xp-total{font-size:.875rem;font-weight:600}.xp-progress-bar{height:8px;background:var(--color-deep-parchment);border-radius:4px;overflow:hidden}.xp-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-copper) 0%,#d4915a 100%);border-radius:4px;transition:width .5s ease}.streak-card{background:linear-gradient(135deg,var(--color-aged-paper) 0%,rgba(255,120,0,.05) 100%);display:flex;flex-direction:column;justify-content:center}.streak-count{font-size:2rem;font-weight:700;color:var(--color-copper);line-height:1}.daily-goal-card{position:relative}.daily-progress-bar{height:10px;background:var(--color-deep-parchment);border-radius:5px;overflow:hidden}.daily-progress-fill{height:100%;background:var(--color-copper);border-radius:5px;transition:width .3s ease}.daily-progress-fill.completed{background:linear-gradient(90deg,var(--color-copper) 0%,#4caf50 100%)}.tier-badge-mini{display:inline-block;padding:6px 12px;border-radius:10px;font-weight:700;font-size:.75rem}.tier-badge-1{background:#cd7f32;color:#fff}.tier-badge-2{background:#a8a8a8;color:#fff}.tier-badge-3{background:#d4af37;color:#fff}.tier-badge-4{background:#8b9ba8;color:#fff}.tier-badge-5{background:#5b9bd5;color:#fff}.league-status-mini{font-size:1.25rem}.status-up{color:#4caf50}.status-down{color:#f44336}.recent-track-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-warm-white);border:1px solid var(--color-deep-parchment);border-radius:var(--radius-md);text-decoration:none;color:var(--color-sepia);transition:border-color .2s ease,box-shadow .2s ease}.recent-track-item:hover{border-color:var(--color-copper);box-shadow:0 2px 8px #5c40331a}.recent-track-icon{font-size:1.5rem;flex-shrink:0}.recent-track-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.recent-track-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-track-progress{font-size:.75rem;color:var(--color-faded-sepia)}.recent-track-arrow{color:var(--color-copper);font-weight:600;flex-shrink:0}.review-card-height:not(.hidden){min-height:190px;display:flex;flex-direction:column;justify-content:center}
