:root{--gold:#d4a017;--gold-dark:#8a6a10;--gold-light:#fdf6e3}
.bg-dark-gold{background:linear-gradient(90deg,#1a1a1a,#2d2416)!important}
.kpi-card{border:none;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:transform .15s}
.kpi-card:hover{transform:translateY(-2px)}
.kpi-card .kpi-value{font-size:1.6rem;font-weight:700;line-height:1.1}
.kpi-card .kpi-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#6c757d}
.kpi-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:1.1rem}
.score-badge{font-variant-numeric:tabular-nums;font-weight:700}
.rank-1{border-left:5px solid var(--gold)}
.rank-2{border-left:5px solid #adb5bd}
.rank-3{border-left:5px solid #cd7f32}
.progress-thick{height:22px;border-radius:11px}
.leak-ticker{font-variant-numeric:tabular-nums;color:#dc3545;font-weight:700}
.ticket-row.expired{background:#fff5f5}
.ticket-row.soon{background:#fffbf0}
.plan-month{border-radius:12px;border:1px solid #e9ecef;background:#fff}
.plan-month .month-head{background:var(--gold-light);border-radius:12px 12px 0 0;padding:.6rem 1rem;font-weight:600}
.action-redeem{color:#198754}.action-renew{color:#fd7e14}.action-wait{color:#dc3545}
.cal-day{min-height:92px;border:1px solid #eee;padding:4px;font-size:.75rem}
.cal-day .daynum{font-weight:600;color:#666}
.cal-ev{display:block;border-radius:4px;color:#fff;padding:1px 4px;margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
