:root{
  --bg:#0f0f0f;
  --card:#1a1a1a;
  --text:#ffffff;
  --accent:#6ee7ff;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
  background:
    radial-gradient(
      circle at top left,
      rgba(110,231,255,.12),
      transparent 25%
    ),
    radial-gradient(
      circle at bottom right,
      rgba(139,92,246,.10),
      transparent 25%
    ),
    var(--bg);

  color:var(--text);
  font-family:sans-serif;
  min-height:100vh;
}

a{
  text-decoration:none;
  color:inherit;
}

img{
  width:100%;
  display:block;
}

.container{
  width:min(1100px, 90%);
  margin:auto;
}

/*-------------------------------------------*/
/* ナビゲーションバー */

.header{
  border-bottom:1px solid #333;
  position:sticky;
  top:0;
  background:rgba(15,15,15,.8);
  backdrop-filter:blur(10px);
  z-index:1000;
}

.header-inner{
  width:min(1100px, 90%);
  margin:auto;
  height:90px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
}

.logo{
  font-size:1.2rem;
  letter-spacing:2px;
}

.nav-center{
  justify-self:center;
}

.nav-list{
  display:flex;
  gap:24px;
  list-style:none;
}

.auth-area{
  justify-self:end;
  display:flex;
  align-items:center;
  gap:14px;
}

.auth-buttons{
  display:flex;
  gap:10px;
}

.auth-buttons button{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:white;
  padding:10px 18px;
  border-radius:14px;
  cursor:pointer;
  font-weight:600;
  backdrop-filter:blur(10px);
  transition:all .25s ease;
  box-shadow:0 4px 20px rgba(0,0,0,.25);
}

.auth-buttons button:hover{
  transform:translateY(-2px);
  border-color:rgba(110,231,255,.35);
  box-shadow:0 8px 30px rgba(110,231,255,.15);
  color:var(--accent);
}

#userInfo{
  display:flex;
  align-items:center;
  gap:10px;
  color:white;
  font-weight:bold;
  font-size:.9rem;
}

.nav-avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.12);
}

/*-------------------------------------------*/
/* ヒーローセクション */

.hero{
  padding:100px 0;
  text-align:center;
}

.hero h2{
  font-size:3rem;
  margin-bottom:20px;
}

.hero p{
  color:#aaa;
}

/*-------------------------------------------*/
/* フィルター */

.search-box{
  position:relative;
  margin-bottom:30px;
}

.search-icon{
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  color:#777;
  font-size:1rem;
}

.search-box input{
  width:100%;
  background:#1a1a1a;
  border:1px solid rgba(255,255,255,.08);
  color:white;
  padding:16px 20px 16px 50px;
  border-radius:18px;
  font-size:1rem;
}

.search-box input:focus{
  outline:none;
  border-color:rgba(110,231,255,.35);
}

.filter-buttons{
  display:flex;
  gap:15px;
  margin-bottom:40px;
  flex-wrap:wrap;
}

.filter-buttons button{
  background:#1f1f1f;
  color:white;
  border:none;
  padding:10px 18px;
  border-radius:999px;
  cursor:pointer;
  transition:.3s;
}

.filter-buttons button:hover,
.filter-buttons button.active{
  background:var(--accent);
  color:black;
}

/*-------------------------------------------*/
/* レビューカード */

.reviews{
  padding-bottom:100px;
}

.review-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 300px));
  gap:40px;
  justify-content:start;
  align-items:start;
}

.review-grid.is-empty{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:300px;
}

.empty-message{
  color:#777;
  font-size:1.2rem;
  text-align:center;
}

.card-link{
  display:block;
  width:300px;
  text-decoration:none;
  color:inherit;
}

.card{
  width:300px;
  height:520px;
  display:flex;
  flex-direction:column;
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.06),
      rgba(255,255,255,.03)
    );
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  transition:
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
  box-shadow:0 10px 40px rgba(0,0,0,.35);
}

.card:hover{
  transform:translateY(-10px) scale(1.01);
  box-shadow:0 20px 60px rgba(110,231,255,.12);
  border-color:rgba(110,231,255,.35);
}

.card img{
  height:220px;
  object-fit:cover;
  transition:transform .4s ease;
}

.card:hover img{
  transform:scale(1.06);
}

.card-content{
  padding:20px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.category{
  color:var(--accent);
  font-size:.8rem;
}

.card h3{
  margin:10px 0;
}

.card p{
  color:#aaa;
  margin-bottom:20px;
}

.rating{
  margin-bottom:20px;
  color:#ffd95a;
  font-weight:bold;
}

.rating-number{
  color:#aaa;
  margin-left:6px;
  font-size:.95rem;
}

.star{
  color:#444;
}

.star.active{
  color:#ffd95a;
}

.posted-by{
  margin-top:10px;
  color:#888;
  font-size:.85rem;
}

.posted-date{
  color:#666;
  font-size:.8rem;
  margin-top:6px;
}

.card-meta-row{
  margin-top:auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.card-meta-row .posted-date{
  margin:0;
}

.card-like-count{
  display:flex;
  align-items:center;
  gap:6px;
  color:#ff7aa2;
  font-size:.9rem;
  font-weight:600;
  letter-spacing:.5px;
}

/*-------------------------------------------*/
/* レビュー詳細 */

.review-page{
  padding:60px 0;
}

.review-detail-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:32px;
  overflow:hidden;
  padding:40px;
  backdrop-filter:blur(20px);
}

.review-detail-top{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
}

.review-detail-image-wrap{
  width:100%;
  aspect-ratio:1/1;
  border-radius:24px;
  overflow:hidden;
  background:
    radial-gradient(
      circle at top,
      rgba(110,231,255,.12),
      rgba(255,255,255,.02)
    );
  border:1px solid rgba(255,255,255,.06);
}

.review-detail-image-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}

.review-detail-image-wrap:hover img{
  transform:scale(1.04);
}

.review-detail-info h2{
  font-size:clamp(2.5rem,5vw,5rem);
  margin:20px 0;
}

.review-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:24px 0;
}

.stat-box{
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:16px;
  min-height:110px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  backdrop-filter:blur(10px);
}

.stat-label{
  display:block;
  color:#777;
  font-size:.75rem;
  margin-bottom:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.stat-box .rating{
  margin:0;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:1.15rem;
}

.stat-box .rating-stars{
  display:flex;
  align-items:center;
}

.stat-box .rating-stars .star{
  letter-spacing:-1px;
}

.stat-box .rating-number{
  font-size:1.35rem;
  font-weight:700;
  color:white;
  line-height:1;
}

.price{
  color:var(--accent);
  font-weight:bold;
}

.stat-box .price{
  margin:0;
  font-size:2rem;
  font-weight:700;
  line-height:1;
}

.posted-by-link{
  display:inline-block;
  color:#aaa;
  margin-top:8px;
  transition:.25s;
  position:relative;
  z-index:5;
}

.posted-by-link:hover{
  color:white;
}

.detail-social-row{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:12px;
}

.detail-view-count{
  color:#888;
  font-size:.95rem;
  font-weight:600;
}

.detail-like-button{
  background:none;
  border:none;
  color:#ff7aa2;
  font-size:.95rem;
  font-weight:600;
  cursor:pointer;
  padding:0;
}

.detail-like-button.liked{
  color:#ff5c8a;
}

.product-link{
  display:inline-block;
  margin-top:30px;
  padding:14px 20px;
  border-radius:14px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(110,231,255,.25);
  color:var(--accent);
  font-weight:bold;
  transition:.25s;
}

.product-link:hover{
  background:rgba(110,231,255,.12);
}

.review-detail-bottom{
  margin-top:50px;
  padding-top:40px;
  border-top:1px solid rgba(255,255,255,.08);
}

.review-detail-bottom h3{
  font-size:1.6rem;
  margin-bottom:20px;
}

.review-text{
  color:#d4d4d4;
  line-height:2;
  margin-bottom:40px;
}

/*-------------------------------------------*/
/* 編集ボタン */

.edit-button{
  display:inline-block;
  margin-top:40px;
  margin-right:12px;
  background:rgba(110,231,255,.12);
  border:1px solid rgba(110,231,255,.25);
  color:var(--accent);
  padding:14px 22px;
  border-radius:14px;
  cursor:pointer;
  font-weight:bold;
  transition:.25s;
}

.edit-button:hover{
  background:rgba(110,231,255,.18);
  transform:translateY(-2px);
}

.delete-button{
  margin-top:40px;
  background:rgba(255,0,80,.12);
  border:1px solid rgba(255,0,80,.25);
  color:#ff4d6d;
  padding:14px 22px;
  border-radius:14px;
  cursor:pointer;
  font-weight:bold;
  transition:.25s;
}

.delete-button:hover{
  background:rgba(255,0,80,.18);
  transform:translateY(-2px);
}

/*-------------------------------------------*/
/* コメントセクション */

.comments-section{
  margin-top:60px;
}

.comments-section h3{
  font-size:1.6rem;
  margin-bottom:20px;
}

.comment-form{
  display:flex;
  flex-direction:column;
  gap:15px;
  margin-bottom:30px;
}

.comment-form textarea{
  min-height:120px;
  resize:vertical;
  background:#1a1a1a;
  border:1px solid rgba(255,255,255,.08);
  color:white;
  padding:16px;
  border-radius:14px;
}

.comment-form button{
  align-self:flex-end;
  background:var(--accent);
  color:black;
  border:none;
  padding:12px 18px;
  border-radius:12px;
  font-weight:bold;
  cursor:pointer;
}

.comment-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:18px;
  margin-bottom:15px;
}

.comment-user{
  font-weight:bold;
  color:white;
  margin-bottom:8px;
}

.comment-content{
  color:#ccc;
  line-height:1.7;
  margin-bottom:10px;
}

.comment-date{
  color:#666;
  font-size:.8rem;
}

.empty-comment{
  color:#777;
}

/*-------------------------------------------*/
/* Aboutページ */

.about-page{
  padding:80px 0;
  max-width:800px;
  margin:0 auto;
}

.about-page h2{
  font-size:3rem;
  margin-bottom:30px;
}

.about-page p{
  color:#bbb;
  line-height:2;
  margin-bottom:25px;
}

.about-images1,
.about-images2{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:20px;
  margin-bottom:40px;
}

.about-images1 img,
.about-images2 img{
  width:100%;
  height:350px;
  object-fit:cover;
  object-position:top;
  border-radius:20px;
}

.creator-card{
  display:flex;
  gap:28px;

  margin-top:50px;

  padding:30px;

  border-radius:28px;

  background:
    rgba(255,255,255,.04);

  border:
    1px solid rgba(255,255,255,.08);
}

.creator-avatar{
  width:120px;
  height:120px;

  border-radius:50%;

  object-fit:cover;

  flex-shrink:0;
}

.creator-info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.creator-name{
  font-size:2rem;
  margin-bottom:14px;
}

.creator-description{
  color:#cfcfcf;
  line-height:1.9;
  margin-bottom:16px;
}

/*-------------------------------------------*/
/* フッター */

.footer{
  border-top:1px solid #222;
  margin-top:100px;
  padding:30px 0;
  text-align:center;
  color:#777;
}

/*-------------------------------------------*/
/* レビュー投稿ページ */

.write-review{
  padding:80px 0;
  max-width:800px;
  margin:0 auto;
}

.write-review h2{
  font-size:3rem;
  margin-bottom:40px;
}

.review-form{
  display:flex;
  flex-direction:column;
  gap:20px;
}

.review-form input,
.review-form textarea,
.review-form select{
  background:#1a1a1a;
  border:1px solid #333;
  color:white;
  padding:16px;
  border-radius:14px;
  font-size:1rem;
}

.review-form textarea{
  min-height:200px;
  resize:vertical;
}

.review-form button{
  background:var(--accent);
  color:black;
  border:none;
  padding:16px;
  border-radius:14px;
  font-weight:bold;
  cursor:pointer;
  transition:.3s;
}

.review-form button:hover{
  opacity:.8;
}

.image-preview{
  display:none;
  width:100%;
  max-height:320px;
  object-fit:contain;
  background:#111;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:16px;
}

.form-actions{
  display:flex;
  gap:15px;
}

.cancel-button{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  border-radius:14px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  color:white;
  font-weight:bold;
  transition:.25s;
}

.cancel-button:hover{
  color:var(--accent);
}

/*-------------------------------------------*/
/* Profile Page */

.profile-page{
  max-width:700px;
  margin:80px auto 0;
}

.profile-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:28px;
  padding:40px;
  backdrop-filter:blur(14px);
}

.profile-title{
  font-size:2.3rem;
  margin-bottom:10px;
}

.profile-subtitle{
  color:#777;
  margin-bottom:35px;
}

.profile-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.profile-form input,
.profile-form textarea{
  background:#1a1a1a;
  border:1px solid rgba(255,255,255,.08);
  color:white;
  padding:18px 20px;
  border-radius:18px;
  font-size:1rem;
  font-family:inherit;
}

.profile-form textarea{
  min-height:130px;
  resize:vertical;
}

.profile-form input:focus,
.profile-form textarea:focus{
  outline:none;
  border-color:rgba(110,231,255,.35);
}

.profile-save-button{
  background:var(--accent);
  color:black;
  border:none;
  padding:16px;
  border-radius:16px;
  font-weight:700;
  cursor:pointer;
  transition:.25s;
}

.profile-save-button:hover{
  transform:translateY(-2px);
  opacity:.92;
}

.avatar-upload{
  display:flex;
  align-items:center;
  gap:24px;

  margin-bottom:30px;
}

.avatar-upload-right{
  display:flex;
  align-items:center;
}

.avatar-preview{
  display:none;
  width:96px;
  height:96px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.12);
  background:#111;
}

.avatar-upload input{
  display:none;
}

.avatar-upload-button{
  display:inline-block;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:#ddd;
  font-size:.9rem;
  font-weight:600;
  cursor:pointer;
  transition:.25s;
}

.avatar-upload-button:hover{
  color:var(--accent);
  border-color:rgba(110,231,255,.35);
}

.user-top{
  display:flex;
  align-items:center;
  gap:24px;
}

.user-main-info{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.profile-avatar{
  width:120px;
  height:120px;
  border-radius:50%;
  object-fit:cover;
  flex-shrink:0;
}

.profile-bio{
  margin-top:30px;
  color:#bdbdbd;
  line-height:1.8;
  white-space:pre-wrap;
}

/*-------------------------------------------*/
/* User Page */

.user-profile{
  margin-top:80px;
  margin-bottom:50px;
}

.user-review-title{
  font-size:2rem;
  margin-bottom:30px;
}

.profile-avatar{
  width:120px;
  height:120px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.12);
  margin-bottom:20px;
  background:#111;
}

.twitter-link{
  display:block;
  margin-top:14px;
  color:#1d9bf0;
  font-weight:600;
  transition:.25s;
}

.twitter-link:hover{
  opacity:.8;
}

.profile-bio{
  display:block;
  margin-top:10px;
  color:#bdbdbd;
  line-height:1.8;
  max-width:700px;
  white-space:pre-wrap;
}

.profile-section-title{
  margin-top:20px;
  font-size:1.2rem;
  color:white;
}

.device-setup{
  margin-top:32px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,.08);
}

.device-setup h3{
  font-size:1.2rem;
  margin-bottom:18px;
}

.device-setup-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:14px;
}

.device-setup-grid p{
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.07);
  border-radius:16px;
  padding:14px 16px;
  color:white;
}

.device-setup-grid span{
  display:block;
  color:#777;
  font-size:.75rem;
  margin-bottom:6px;
}

/*-------------------------------------------*/
/* フローティングボタン */

.floating-button{
  position:fixed;
  right:30px;
  bottom:30px;
  width:65px;
  height:65px;
  border-radius:50%;
  background:var(--accent);
  color:black;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  font-weight:bold;
  text-decoration:none;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
  transition:.3s;
  z-index:9999;
}

.floating-button:hover{
  transform:scale(1.1);
  opacity:.9;
}

/*-------------------------------------------*/
/* レビューカード */

@media(max-width:900px){

  .review-detail-top{
    grid-template-columns:1fr;
  }

}

@media(max-width:768px){

  .header-inner{
    grid-template-columns:1fr;
    height:auto;
    gap:20px;
    padding:20px 0;
  }

  .nav-center{
    justify-self:center;
  }

  .nav-list{
    flex-wrap:wrap;
    justify-content:center;
  }

  .auth-area{
    justify-self:center;
    flex-direction:column;
    gap:10px;
  }

  .hero{
    padding:60px 0;
  }

  .hero h2{
    font-size:2rem;
  }

  .review-grid{
    grid-template-columns:1fr;
    justify-content:center;
  }

  .card-link{
    width:100%;
    max-width:340px;
    margin:auto;
  }

  .card{
    width:100%;
    max-width:340px;
    margin:auto;
  }

  .review-detail-card{
    padding:20px;
  }

  .review-detail-info h2{
    font-size:2rem;
  }

  .review-stats{
    grid-template-columns:1fr;
  }

  .price{
    font-size:1.5rem;
  }

  .write-review{
    padding:40px 0;
  }

  .write-review h2{
    font-size:2rem;
  }

  .profile-card{
    padding:28px;
  }

  .form-actions{
    flex-direction:column;
  }

  .floating-button{
    width:55px;
    height:55px;
    font-size:1.5rem;
    right:20px;
    bottom:20px;
  }

}

.comment-reply-button{
  background:none;
  border:none;
  color:#777;
  font-size:.75rem;
  cursor:pointer;
  transition:.2s;
}

.comment-reply-button:hover{
  color:var(--accent);
}

.comment-mention{
  color:var(--accent);
  cursor:pointer;
  font-weight:700;
}

.comment-mention:hover{
  text-decoration:underline;
}

.mention-highlight{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 1px rgba(110,231,255,.45);
}

.board-post-image{
  width:100%;
  max-height:420px;

  object-fit:cover;

  border-radius:18px;

  margin-bottom:18px;

  border:
    1px solid rgba(255,255,255,.08);
}

.board-detail-image{
  width:100%;

  max-height:700px;

  object-fit:cover;

  border-radius:22px;

  margin-bottom:22px;

  border:
    1px solid rgba(255,255,255,.08);
}

/*-------------------------------------------*/
/* 掲示板 */

.board-page{
  padding:50px 0 80px;
  max-width:850px;
  margin:0 auto;
}

.board-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:40px;
}

.board-top h2{
  font-size:3rem;
}

.board-write-button{
  display:inline-block;
  padding:12px 20px;
  border-radius:999px;
  background:var(--accent);
  color:black;
  font-weight:700;
  transition:.25s;
}

.board-write-button:hover{
  transform:translateY(-2px);
  opacity:.9;
}

.board-list{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.board-post{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:24px;
  transition:.25s;
}

.board-post:hover{
  transform:translateY(-3px);
  border-color:rgba(110,231,255,.25);
}

.board-post-header{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}

.board-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  object-fit:cover;
  background:#111;
  border:1px solid rgba(255,255,255,.12);
}

.board-user-info{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.board-username{
  font-weight:700;
  color:white;
}

.board-date{
  font-size:.8rem;
  color:#777;
}

.board-category{
  display:inline-block;
  color:var(--accent);
  font-size:.8rem;
  margin-bottom:10px;
}

.board-title{
  font-size:1.3rem;
  margin-bottom:12px;
}

.board-content{
  color:#bbb;
  line-height:1.8;
  margin-bottom:18px;
}

.board-actions{
  display:flex;
  gap:18px;
  color:#888;
  font-size:.9rem;
  font-weight:600;
}

.board-post-link{
  display:block;
  color:inherit;
  text-decoration:none;
}

/*-------------------------------------------*/
/*掲示板コメント＆いいね*/

.comment-top{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:16px;
}

.comment-avatar{
  width:42px;
  height:42px;

  border-radius:50%;

  object-fit:cover;

  background:#111;

  border:
    1px solid rgba(255,255,255,.12);

  flex-shrink:0;
}

.comment-user-info{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.comment-user{
  font-weight:700;
  color:white;
}

.comment-date{
  color:#777;
  font-size:.8rem;
}

.detail-like-button{
  background:none;
  border:none;
  color:#ff7aa2;
  font-size:.95rem;
  font-weight:600;
  cursor:pointer;
  padding:0;
}

.detail-like-button.liked{
  color:#ff5c8a;
}

.comment-user-row{
  display:flex;
  align-items:center;
  gap:10px;
}

.comment-delete-button{
  background:none;
  border:none;
  color:#777;
  font-size:.75rem;
  cursor:pointer;
  transition:.2s;
}

.comment-delete-button:hover{
  color:#ff6b81;
}

/*-------------------------------------------*/
/*ランキング*/

.board-page{
  position:relative;
  padding:50px 0 80px;
  max-width:850px;
  margin:0 auto;
}

.device-ranking{
  position:absolute;

  top:335px;
  left:-280px;

  width:260px;
  min-height:160px;

  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:22px;
}

@media(max-width:1300px){
  .device-ranking{
    position:static;
    width:100%;
    margin-bottom:28px;
  }
}

.ranking-group{
  margin-bottom:24px;
}

.ranking-group:last-child{
  margin-bottom:0;
}

.ranking-group h4{
  font-size:.9rem;
  color:var(--accent);
  margin-bottom:10px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.ranking-item{
  display:flex;
  align-items:center;
  gap:10px;

  padding:10px 0;

  border-bottom:
    1px solid rgba(255,255,255,.06);
}

.ranking-item:last-child{
  border-bottom:none;
}

.ranking-rank{
  width:24px;

  font-weight:700;

  color:var(--accent);
}

.ranking-name{
  flex:1;

  color:white;

  overflow:hidden;

  text-overflow:ellipsis;

  white-space:nowrap;
}

.ranking-count{
  color:#888;

  font-size:.85rem;
}

.ranking-empty{
  color:#666;
  font-size:.85rem;
}