about/static/css/plugin-beatleader.css

309 lines
5.9 KiB
CSS

.stats-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
gap:12px;
margin-bottom:16px;
}
@media (min-width: 1200px) {
.stats-grid {
grid-template-columns:repeat(4, 1fr);
}
}
.stat-item{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
gap:6px;
padding:16px 12px;
border-radius:12px;
background:rgba(255,255,255,.014);
box-shadow:inset 0 0 0 1px var(--edge-0);
transition:transform .15s ease, background .15s ease;
min-height:80px;
}
.stat-item:hover{
background:rgba(255,255,255,.024);
transform:translateY(-1px);
}
.stat-label{
font-weight:700;
font-size:clamp(11px, 1vw, 13px);
color:var(--ink-2);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
max-width:100%;
}
.stat-value{
font-weight:800;
font-family:var(--mono);
font-variant-numeric:tabular-nums;
font-size:clamp(16px, 1.5vw, 20px);
color:var(--accent);
white-space:nowrap;
line-height:1;
}
@media (max-width:900px){
.stats-grid{
grid-template-columns:repeat(2, 1fr);
gap:10px;
}
.stat-item{
padding:12px 8px;
min-height:70px;
}
}
@media (max-width:520px){
.stats-grid{
grid-template-columns:repeat(2, 1fr);
gap:8px;
}
.stat-item{
padding:10px 6px;
min-height:60px;
}
.stat-value{
font-size:14px;
}
.stat-label{
font-size:10px;
}
}
.maps-list{
display:flex;
flex-direction:column;
gap:10px;
margin-top:16px;
}
.map-item{
display:grid;
grid-template-columns:60px 1fr;
align-items:center;
gap:12px;
padding:12px;
border-radius:12px;
background:var(--paper);
box-shadow:inset 0 0 0 1px var(--edge-0), var(--shadow);
transition:transform .12s ease, box-shadow .2s ease;
position:relative;
}
.map-item:hover{
transform:translateY(-1px);
box-shadow:inset 0 0 0 1px var(--edge-1), 0 4px 16px rgba(0,0,0,.2);
}
.map-item[style*="cursor: pointer"]:hover{
background:linear-gradient(135deg, var(--paper) 0%, color-mix(in oklab, var(--paper) 95%, var(--accent)) 100%);
}
@media (min-width:520px){
.map-item{
grid-template-columns:64px 1fr;
padding:14px;
}
}
.map-cover{
width:60px;
height:60px;
border-radius:10px;
object-fit:cover;
flex-shrink:0;
box-shadow:0 2px 8px rgba(0,0,0,.15);
}
@media (min-width:520px){
.map-cover{
width:64px;
height:64px;
}
}
.map-info{
min-width:0;
display:flex;
flex-direction:column;
gap:6px;
}
.map-name{
margin:0;
font-weight:800;
font-size:clamp(14px, 1.25vw, 16px);
line-height:1.2;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
color:var(--ink);
}
.map-stats{
display:flex;
flex-wrap:wrap;
gap:8px 12px;
color:var(--muted);
font:12px/1 var(--mono);
align-items:center;
}
.map-stats span{
background:rgba(255,255,255,.04);
padding:2px 6px;
border-radius:4px;
font-size:11px;
font-weight:600;
white-space:nowrap;
}
.replay-indicator{
background:var(--accent);
color:white;
padding:2px 6px;
border-radius:4px;
font-size:11px;
font-weight:600;
animation:pulse-glow 2s ease-in-out infinite;
}
@keyframes pulse-glow{
0%, 100%{
opacity:1;
box-shadow:0 0 8px color-mix(in oklch, var(--accent) 40%, transparent);
}
50%{
opacity:0.8;
box-shadow:0 0 16px color-mix(in oklch, var(--accent) 60%, transparent);
}
}
.pepe-gif{
vertical-align:middle;
width:18px;
height:18px;
transform:translateY(-1px);
margin-left:6px;
}
@media (max-width:520px){
.map-stats{
gap:4px 8px;
}
.map-stats span{
font-size:10px;
padding:1px 4px;
}
}
.beatleader-section h4{
margin:16px 0 8px 0;
font-size:16px;
font-weight:700;
color:var(--ink-2);
display:flex;
align-items:center;
}
.view-profile-btn{
margin-top:12px;
display:inline-flex;
align-items:center;
gap:6px;
padding:8px 12px;
background:var(--accent);
color:white;
border-radius:8px;
text-decoration:none;
font-size:13px;
font-weight:600;
transition:all .15s ease;
}
.view-profile-btn:hover{
background:color-mix(in oklch, var(--accent) 90%, black);
transform:translateY(-1px);
}
.stat-item[data-tooltip]{
cursor:help;
position:relative;
}
.stat-item[data-tooltip]::before{
content:attr(data-tooltip);
position:absolute;
bottom:calc(100% + 8px);
left:50%;
transform:translateX(-50%);
background:var(--paper);
color:var(--ink);
padding:8px 12px;
border-radius:8px;
font-size:12px;
font-weight:600;
font-family:var(--mono);
white-space:nowrap;
box-shadow:var(--shadow), inset 0 0 0 1px var(--edge-1);
opacity:0;
pointer-events:none;
transition:opacity .2s ease, transform .2s ease;
z-index:100;
}
.stat-item[data-tooltip]:hover::before{
opacity:1;
transform:translateX(-50%) translateY(-2px);
}
.stat-item[data-tooltip]::after{
content:'';
position:absolute;
bottom:calc(100% + 2px);
left:50%;
transform:translateX(-50%);
border:6px solid transparent;
border-top-color:var(--paper);
opacity:0;
pointer-events:none;
transition:opacity .2s ease;
z-index:100;
}
.stat-item[data-tooltip]:hover::after{
opacity:1;
}
@media (max-width:780px){
.stat-item[data-tooltip]::before{
bottom:auto;
top:calc(100% + 8px);
transform:translateX(-50%);
}
.stat-item[data-tooltip]:hover::before{
transform:translateX(-50%) translateY(2px);
}
.stat-item[data-tooltip]::after{
bottom:auto;
top:calc(100% + 2px);
border-top-color:transparent;
border-bottom-color:var(--paper);
}
}