.kusa-points-badge{
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  background:var(--kusa-primary, #111);
  color:#fff;
  margin-top:6px;
}

.kusa-points-box{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:12px;
  background:rgba(0,0,0,0.02);
}

.kusa-points-box__title{font-weight:600; margin-bottom:6px;}
.kusa-points-box__price{font-size:20px; font-weight:700; margin-bottom:8px;}
.kusa-points-box__meta{font-size:13px; opacity:0.8; margin-bottom:10px;}
.kusa-points-box__note{font-size:13px; opacity:0.9; margin-top:8px;}
.kusa-points-btn{display:inline-block;}

.kusa-progress{width:100%; height:10px; border-radius:999px; background:rgba(0,0,0,0.08); overflow:hidden;}
.kusa-progress__bar{height:10px; background:var(--kusa-success, #2e7d32); width:0;}

.kusa-myaccount{margin-top:10px;}
.kusa-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-bottom:14px;}
.kusa-card{border:1px solid rgba(0,0,0,0.08); border-radius:16px; padding:14px; background:#fff;}
.kusa-card__header{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px;}
.kusa-card__meta{font-size:13px; opacity:.9; display:grid; gap:4px;}

.kusa-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.03);white-space:nowrap;}
.kusa-status--reviewing{background:rgba(2,132,199,.10);border-color:rgba(2,132,199,.25);} 
.kusa-status--awarded{background:rgba(34,197,94,.10);border-color:rgba(34,197,94,.25);} 
.kusa-status--partial_awarded{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.3);} 
.kusa-status--rejected{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.25);} 

.kusa-alert{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);font-size:13px;}
.kusa-help{font-size:13px;opacity:.8;margin-bottom:10px;}
.kusa-card__title{font-size:13px; opacity:.7; margin-bottom:4px;}
.kusa-card__metric{font-size:28px; font-weight:800; line-height:1.1;}
.kusa-card__sub{font-size:13px; margin-top:4px; opacity:.8;}
.kusa-card__small{font-size:12px; opacity:.7; margin-top:6px;}
.kusa-card__note{opacity:.85; padding:8px 10px; border-radius:12px; background:rgba(2,132,199,.08); border:1px solid rgba(2,132,199,.18);}

.kusa-section{border:1px solid rgba(0,0,0,0.08); border-radius:16px; padding:14px; background:#fff; margin:12px 0;}
.kusa-section__title{font-weight:700; margin-bottom:8px;}
.kusa-section__meta{font-size:13px; opacity:.8; margin-top:6px;}

.kusa-table-wrap{overflow:auto;}
.kusa-table{width:100%; border-collapse:collapse; font-size:13px;}
.kusa-table th, .kusa-table td{padding:8px 10px; border-bottom:1px solid rgba(0,0,0,0.06); text-align:left; white-space:nowrap;}

.kusa-invoice-form label{display:block; font-weight:600; font-size:12px; margin-bottom:4px;}
.kusa-invoice-form input[type=text],
.kusa-invoice-form input[type=email],
.kusa-invoice-form input[type=number],
.kusa-invoice-form input[type=file]{width:100%; padding:10px; border-radius:10px; border:1px solid rgba(0,0,0,0.15);}
.kusa-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px;}
.kusa-file{grid-column:1 / -1;}

.kusa-cart-points-summary th{vertical-align:top;}
.kusa-cart-points-summary__line{margin-bottom:4px;}

/* Invoice submit loader */
.kusa-loader-overlay{
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(17,24,39,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.kusa-loader-card{
  width:min(380px,92vw);
  background:#fff;
  border-radius:18px;
  border:1px solid rgba(0,0,0,.12);
  padding:18px 20px;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
  text-align:center;
}
.kusa-spinner{
  width:34px;
  height:34px;
  border-radius:50%;
  border:4px solid rgba(0,0,0,.12);
  border-top-color:var(--kusa-success, #2e7d32);
  animation:kusa-spin 1s linear infinite;
  margin:0 auto 10px;
}
.kusa-loader-title{
  font-weight:800;
  font-size:16px;
  margin-bottom:4px;
}
.kusa-loader-sub{
  font-size:13px;
  opacity:.8;
}
.kusa-btn--disabled{opacity:.6; cursor:not-allowed;}

@keyframes kusa-spin{to{transform:rotate(360deg);}}

/* Cart recommendations (low points) */
.kusa-cart-recs{
  margin:18px 0 6px;
  padding:14px;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:18px;
  background:#fff;
}
.kusa-cart-recs__header{margin-bottom:10px;}
.kusa-cart-recs__title{font-weight:800; font-size:15px;}
.kusa-cart-recs__subtitle{font-size:13px; opacity:.8; margin-top:2px;}
.kusa-cart-recs__grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px;}
.kusa-cart-rec{border:1px solid rgba(0,0,0,0.08); border-radius:16px; overflow:hidden; background:#fff; display:flex; flex-direction:column;}
.kusa-cart-rec--ok{border-color:rgba(34,197,94,.35);}
.kusa-cart-rec--no{border-color:rgba(239,68,68,.35);}
.kusa-cart-rec__thumb{display:block; background:rgba(0,0,0,0.02);}
.kusa-cart-rec__body{padding:12px; display:grid; gap:6px;}
.kusa-cart-rec__name{font-weight:800; font-size:13px; color:#111; text-decoration:none;}
.kusa-cart-rec__name:hover{text-decoration:underline;}
.kusa-cart-rec__points{font-size:13px; opacity:.85; font-weight:700;}
.kusa-cart-rec__hint{font-size:12px; opacity:.75;}
.kusa-cart-rec__btn{width:fit-content;}
.kusa-cart-rec__btn--ghost{background:transparent !important; border:1px solid rgba(0,0,0,.2) !important;}


/* ===== Premium Dashboard UI ===== */
.kusa-dash{margin-top:10px;}
.kusa-hero{
  border-radius:22px;
  padding:18px 18px;
  border:1px solid rgba(0,0,0,.08);
  background:linear-gradient(135deg, var(--kusa-primary, #111827), var(--kusa-accent, #0284c7));
  color:#fff;
  display:flex;
  gap:14px;
  align-items:flex-start;
  justify-content:space-between;
  box-shadow:0 18px 55px rgba(0,0,0,.18);
}
.kusa-hero__kicker{font-size:12px; opacity:.85; letter-spacing:.08em; text-transform:uppercase;}
.kusa-hero__title{font-size:22px; font-weight:900; line-height:1.1; margin-top:6px;}
.kusa-hero__meta{margin-top:10px; display:flex; flex-wrap:wrap; gap:8px;}
.kusa-hero__right{display:flex; gap:10px; flex-wrap:wrap;}
.kusa-btn{border-radius:14px !important; padding:10px 14px !important; font-weight:800 !important;}
.kusa-btn--ghost{background:rgba(255,255,255,.12) !important; border:1px solid rgba(255,255,255,.22) !important; color:#fff !important;}
.kusa-btn--ghost:hover{background:rgba(255,255,255,.18) !important;}

.kusa-btn--rules{
  background:#ffd400 !important;
  border:1px solid rgba(0,0,0,.18) !important;
  color:#111827 !important;
  box-shadow:0 10px 28px rgba(255,212,0,.28) !important;
}
.kusa-btn--rules:hover{
  background:#ffea3a !important;
  color:#111827 !important;
}

/*
  The "ghost" button style is designed for dark backgrounds (hero).
  Inside white panels it becomes invisible (white-on-white).
  This override keeps the premium look while ensuring readability.
*/
.kusa-panel .kusa-btn--ghost{
  background:rgba(0,0,0,.04) !important;
  border:1px solid rgba(0,0,0,.12) !important;
  color:#111 !important;
}
.kusa-panel .kusa-btn--ghost:hover{background:rgba(0,0,0,.06) !important;}
.kusa-btn--muted{
  opacity:.55;
  filter:grayscale(1);
  background:rgba(0,0,0,.06) !important;
  border:1px solid rgba(0,0,0,.18) !important;
  color:#111 !important;
}
.kusa-btn--muted:hover{opacity:.7;}

.kusa-pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:999px;
  font-size:12px; font-weight:800;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
}
.kusa-pill.is-open{background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.25);}
.kusa-pill.is-locked{background:rgba(239,68,68,.14); border-color:rgba(239,68,68,.25);}
.kusa-pill.is-soft{background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.14); font-weight:700;}

.kusa-tabs{
  margin-top:14px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.kusa-tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  font-weight:900;
  font-size:13px;
  text-decoration:none;
  color:#111;
  box-shadow:0 10px 28px rgba(0,0,0,.06);
}
.kusa-tab.is-active{
  background:linear-gradient(135deg, var(--kusa-accent, #0284c7), var(--kusa-success, #22c55e));
  border-color:rgba(0,0,0,.08);
  color:#fff;
}

.kusa-grid-hero{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:12px;
}
.kusa-kpi{
  border-radius:18px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  padding:14px;
  box-shadow:0 14px 40px rgba(0,0,0,.07);
}
.kusa-kpi__label{font-size:12px; opacity:.7; font-weight:800;}
.kusa-kpi__value{font-size:28px; font-weight:950; margin-top:6px;}
.kusa-kpi__sub{font-size:13px; opacity:.8; margin-top:6px;}

.kusa-panel{
  margin-top:12px;
  border-radius:18px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  padding:14px;
  box-shadow:0 14px 40px rgba(0,0,0,.06);
}
.kusa-panel__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.kusa-panel__title{font-weight:950;}
.kusa-panel__meta{font-size:13px; opacity:.8;}

.kusa-columns{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:12px;
}

.kusa-mini-table{display:grid; gap:10px;}
.kusa-mini-row{display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(0,0,0,.06);}
.kusa-mini-row:last-child{border-bottom:0;}
.kusa-mini-title{font-weight:950; font-size:13px;}
.kusa-mini-sub{font-size:12px; opacity:.7; margin-top:2px;}
.kusa-mini-right{font-weight:950; display:flex; align-items:center; gap:10px;}

.kusa-empty{padding:10px 0; opacity:.75; font-size:13px;}

.kusa-products{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:12px;
}
.kusa-product{
  border-radius:18px;
  border:1px solid rgba(0,0,0,.08);
  overflow:hidden;
  background:#fff;
  display:flex;
  flex-direction:column;
}
.kusa-product__thumb{display:block; background:rgba(0,0,0,.02);}
.kusa-product__body{padding:12px; display:grid; gap:8px;}
.kusa-product__name{font-weight:950; font-size:13px; color:#111; text-decoration:none;}
.kusa-product__name:hover{text-decoration:underline;}
.kusa-product__meta{font-size:13px; opacity:.85; font-weight:900;}

.kusa-product__actions{display:flex; gap:8px; flex-wrap:wrap;}
.kusa-product__actions .button{flex:1; min-width:140px; text-align:center; border-radius:14px !important; padding:10px 12px !important; font-weight:800 !important;}
.kusa-product__hint{font-size:12px; opacity:.75; margin-top:-2px;}

/* WooCommerce product cards (shop loop) for points products */
.kusa-loop-actions{margin-top:10px; display:flex; flex-direction:column; gap:8px;}
.kusa-loop-actions__row{display:flex; gap:8px;}
.kusa-loop-actions__row a{flex:1; text-align:center;}
.kusa-loop-btn{border-radius:14px !important; padding:10px 12px !important; font-weight:800 !important; text-decoration:none !important; display:inline-flex; align-items:center; justify-content:center;}
.kusa-loop-btn--muted{
  opacity:.6;
  filter:grayscale(1);
  background:rgba(0,0,0,.06) !important;
  border:1px solid rgba(0,0,0,.18) !important;
  color:#111 !important;
}
.kusa-loop-hint{font-size:12px; opacity:.75; margin-top:-2px;}


/* Leaderboard + Policy */
.kusa-policy-callout{
  margin: 10px 0 16px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.02);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.kusa-policy-callout__text{font-size:13px; opacity:.9; font-weight:700;}
.kusa-form-inline{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.kusa-switch{display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none;}
.kusa-switch input{position:absolute; opacity:0; pointer-events:none;}
.kusa-switch__ui{
  width:44px; height:26px; border-radius:999px;
  border:1px solid rgba(0,0,0,.18);
  background:var(--kusa-switch-off, #f59e0b);
  position:relative;
  transition: all .2s ease;
  flex:0 0 auto;
}
.kusa-switch__ui:after{
  content:"";
  width:20px; height:20px; border-radius:999px;
  background:#fff;
  box-shadow: 0 6px 14px rgba(0,0,0,.12);
  position:absolute; top:2px; left:2px;
  transition: all .2s ease;
}
.kusa-switch input:checked + .kusa-switch__ui{
  background: var(--kusa-switch-on, #22c55e);
}
.kusa-switch input:checked + .kusa-switch__ui:after{
  left:22px;
}
.kusa-switch__label{font-size:13px; font-weight:800; opacity:.9;}

.kusa-table--leaderboard td, .kusa-table--leaderboard th{white-space:nowrap;}
.kusa-table--leaderboard tr.is-you td{
  background: rgba(0,0,0,.03);
}
.kusa-you-badge{
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.14);
  background:rgba(0,0,0,.04);
  font-size:11px;
  font-weight:900;
  opacity:.85;
}
.kusa-alert--warn{
  border-color: rgba(220,120,30,.35);
  background: rgba(220,120,30,.10);
}
.kusa-policy{font-size:13px; line-height:1.6;}
.kusa-policy h3{margin:16px 0 8px; font-size:14px; font-weight:950;}
.kusa-policy ul{margin:8px 0 8px 18px;}
.kusa-policy li{margin:4px 0;}

.kusa-status--awarded_current_spend,.kusa-status--partial_awarded_current_spend{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);color:#166534;}


/* Customer account polish */
.kusa-legend-panel{margin-top:12px;}
.kusa-legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.kusa-legend-item{display:grid;gap:4px;padding:12px;border:1px solid rgba(0,0,0,.06);border-radius:14px;background:rgba(0,0,0,.02);}
.kusa-legend-item strong{font-size:13px;}
.kusa-legend-item span{font-size:12px;opacity:.8;line-height:1.45;}
.kusa-card__meta--invoice{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;}
.kusa-card__meta-item{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:rgba(0,0,0,.02);}
.kusa-card__meta-item strong{font-size:12px;opacity:.7;}
.kusa-card__meta-item span{font-size:15px;font-weight:800;opacity:1;}
.kusa-card__files{margin-top:12px;display:grid;gap:8px;}
.kusa-card__files strong{font-size:12px;opacity:.7;text-transform:uppercase;letter-spacing:.04em;}
.kusa-card__files-links{display:flex;flex-wrap:wrap;gap:8px;}
.kusa-inline-file{padding:8px 12px !important;border-radius:12px !important;}
.kusa-table td .kusa-status{font-size:11px;}

/* v1.2.6.38 - Force Point rules hero button yellow.
   Some themes/WooCommerce button rules are more specific than the base .kusa-btn--rules selector. */
.kusa-hero .kusa-hero__right a.button.kusa-btn.kusa-btn--rules,
.kusa-hero .kusa-hero__right a.kusa-btn.kusa-btn--rules,
.woocommerce-account .kusa-hero .kusa-hero__right a.button.kusa-btn.kusa-btn--rules{
  background:#ffd400 !important;
  background-color:#ffd400 !important;
  color:#111827 !important;
  border:1px solid rgba(0,0,0,.18) !important;
  box-shadow:0 10px 28px rgba(255,212,0,.32) !important;
}
.kusa-hero .kusa-hero__right a.button.kusa-btn.kusa-btn--rules:hover,
.kusa-hero .kusa-hero__right a.kusa-btn.kusa-btn--rules:hover,
.woocommerce-account .kusa-hero .kusa-hero__right a.button.kusa-btn.kusa-btn--rules:hover{
  background:#ffea3a !important;
  background-color:#ffea3a !important;
  color:#111827 !important;
}
