/* ---------- generic UI ---------- */
.card-ui{background:linear-gradient(180deg,var(--panel),#121527);border:1px solid var(--line);border-radius:18px;padding:16px}
.btn{border:none;cursor:pointer;font-family:'Outfit';font-weight:700;border-radius:12px;padding:12px 18px;font-size:14px;
  transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:active{transform:scale(.96)}
.btn-red{background:linear-gradient(180deg,var(--red2),var(--red));color:#fff;box-shadow:0 6px 20px rgba(227,53,13,.4)}
.btn-yellow{background:linear-gradient(180deg,#ffe066,var(--yellow));color:#3a2c00;box-shadow:0 6px 20px rgba(255,203,5,.3)}
.btn-ghost{background:#1d2240;color:var(--txt);border:1px solid var(--line)}
.btn-green{background:linear-gradient(180deg,#4be58c,#1fb75d);color:#06210f;box-shadow:0 6px 20px rgba(47,213,115,.3)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-sm{padding:8px 12px;font-size:12px;border-radius:10px}
h3.secttl{font-size:20px;margin:22px 2px 10px;display:flex;align-items:center;gap:8px}
h3.secttl small{font-size:12px;color:var(--dim);font-weight:500;letter-spacing:0;font-family:'Outfit'}
.emptystate{text-align:center;color:var(--txt);padding:44px 20px;border:1px solid rgba(255,255,255,.1);border-radius:18px;font-size:14px;line-height:1.6;background:rgba(10,13,26,.6);backdrop-filter:blur(2px)}
.emptystate b{color:var(--txt)}
