:root{
    --brand:#000000;
    --brand-mid:#ff0000;
    --brand-dark:#1f1f1f;
    --border:#1f1f1f;
    --bg:#fff;
    --shadow:0 6px 15px rgba(0,0,0,.08);
}
.app-card{
    max-width:650px;
    margin:25px auto;
    background:var(--bg);
    border-radius:14px;
    overflow:hidden;
    box-shadow:var(--shadow);
    border:1px solid var(--border);
    transition:transform
    .2s,box-shadow
    .3s;font-family:system-ui,Arial,sans-serif;
    font-size:.92rem;
}
.app-card:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 25px rgba(0,0,0,.12);
}
.app-header{
    padding:12px 16px;
    text-align:center;
    background:linear-gradient(135deg,var(--brand),var(--brand-mid),var(--brand-dark));
    color:#ffffff;
    font-weight:800;
    font-size:1.15rem;
    text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.app-table{
    width:100%;
    border-collapse:collapse;
}
.app-table th,.app-table td{
    padding:8px 12px;
    vertical-align:middle;
}
.app-table th{
    width:35%;
    background:var(--brand-mid);
    color:#ffffff;
    font-weight:700;
    letter-spacing:.2px;
    border-bottom:1px solid #000000;
    text-transform:uppercase;
    font-size:.85rem;
}
.app-table td{
    border-bottom:1px solid var(--border);
    color:#1f1f1f;
    font-size:.9rem;
}
@media(max-width:640px)
{.app-table,.app-table tbody,.app-table tr,.app-table th,.app-table td{
    display:block;width:100%;
}
}
.review-section{
    max-width:850px;
    margin:30px auto;
    display:flex;
    flex-direction:column;
    gap:18px;
    font-family:system-ui,Arial,sans-serif;
}
.review-card{
    background:#000000;
    padding:16px 20px;
    border-radius:10px;
    border-left:5px solid var(--brand);
    box-shadow:0 3px 6px rgba(0,0,0,.05);
    transition:all .25s ease-in-out;
}
.review-card:hover{
    transform:translateY(-3px);
    box-shadow:0 5px 10px rgba(0,0,0,.08);
}
.review-author{
    font-weight:700;
    color:var(--brand-dark);
    margin-bottom:4px;
    display:flex;
    align-items:center;
    gap:6px;
    font-size:.92rem;
}
.review-author::before{content:"👤";font-size:1rem;}
.review-card p{margin:0;color:#ff0000;font-size:.94rem;line-height:1.6;}
/* JANGAN warnai .review-rating, biar pseudo-element yang atur warna */
.review-rating{margin-left:auto;font-weight:700}

/* ⭐ STAR SYSTEM (mendukung 4.8/4.9) */
.stars{
  --rating:5;              /* fallback */
  --star-size:1rem;
  --star-gap:2px;
  --star-empty:#e5e7eb;
  --star-fill:#f4c430;
  position:relative;
  display:inline-block;
  font-size:var(--star-size);
  line-height:1;
  letter-spacing:var(--star-gap);
}
.stars::before{
  content:"★★★★★";
  color:var(--star-empty);
}
.stars::after{
  content:"★★★★★";
  color:var(--star-fill);
  position:absolute;left:0;top:0;
  width:calc((var(--rating)/5)*100%);
  overflow:hidden;white-space:nowrap;pointer-events:none;
}
.stars.lg{--star-size:1.1rem;letter-spacing:3px}
.badge{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.badge small{color:#000000;font-weight:600}