/* Progress & lessons UI */
.vblessons-progress-wrap{margin:0 0 1rem;}
.vblessons-progress-bar-bg{background:#e5e7eb;height:10px;border-radius:6px;overflow:hidden;}
.vblessons-progress-bar-fill{height:10px;background:#10b981;}
.vblessons-tabs {display:flex;flex-wrap: nowrap;gap: 0.5rem;margin-bottom: 1rem;overflow-x: auto;}
.vblessons-tab-button {background: #f3f4f6;border: none;padding: 0.5rem 1rem;cursor: pointer;font-weight: 700;border-radius: 6px;text-align: center;white-space: nowrap;flex-shrink: 0;}
.vblessons-tab-button.active{background:#10b981;color:#fff;}
.vblessons-tab-content{display:none;}
.vblessons-tab-content.active{display:block;}
.vblessons-locked-message{font-style:italic;color:#1f2937;padding:1rem;background:#e5e7eb;border-radius:6px;}
.vblessons-accordion-header{font-size:1.25rem;font-weight:800;background:#e5e7eb;padding:1rem;border-radius:8px;margin-bottom:.5rem;}
.vblessons-accordion-body{margin-bottom:1.5rem;}
.vblessons-accordion-separator{border-top:2px dashed #ccc;margin:2rem 0;}
.vblessons-status{margin-top:.5rem;}
/* Dashboard */
.vblessons-dashboard-summary{background:transparent;color:#fff;text-align:center;padding:2rem;margin-bottom:2rem;}
.vblessons-gauge{width:200px;height:100px;background:conic-gradient(#ef4444 var(--vblessons-gauge-deg), #ffffff 0);border-radius:100px 100px 0 0;margin:0 auto;position:relative;}
.vblessons-gauge span{position:absolute;width:100%;top:30%;left:0;font-size:2rem;font-weight:800;color:#fff;text-align:center;}
.vblessons-domain-table{width:100%;border-collapse:collapse;}
.vblessons-domain-table th,.vblessons-domain-table td{padding:1rem;text-align:left;color:#fff;}
.vblessons-domain-table tr:not(:last-child){border-bottom:1px solid rgba(255,255,255,.2);}
.vblessons-domain-link{font-weight:700;color:#fff !important;text-decoration:none;}
.vblessons-progress-bar{background:#e5e7eb;height:10px;border-radius:5px;overflow:hidden;width:100px;}
.vblessons-progress-bar>div{height:100%;transition:width .3s;}
.vblessons-progress-bar.green>div{background:#10b981;}
.vblessons-progress-bar.yellow>div{background:#fbbf24;}
.vblessons-progress-bar.red>div{background:#ef4444;}
/* Dashboard */
.vblessons-dashboard-summary{
  background:transparent;
  color:#fff;
  text-align:center;
  padding:2rem;
  margin-bottom:2rem;
}

.vblessons-gauge{
  width:200px;
  height:100px;
  background:conic-gradient(#ef4444 var(--vblessons-gauge-deg), #ffffff 0);
  border-radius:100px 100px 0 0;
  margin:0 auto;
  position:relative;
}

.vblessons-gauge span{
  position:absolute;
  width:100%;
  top:30%;
  left:0;
  font-size:2rem;
  font-weight:800;
  color:#fff;
  text-align:center;
}

.vblessons-domain-table{
  width:100%;
  border-collapse:collapse;
}

.vblessons-domain-table th,
.vblessons-domain-table td{
  padding:1rem;
  text-align:left;
  color:#fff;
  vertical-align:middle;
}

.vblessons-domain-table tr:not(:last-child){
  border-bottom:1px solid rgba(255,255,255,.2);
}

.vblessons-domain-link{
  font-weight:700;
  color:#fff !important;
  text-decoration:none;
  word-break:break-word;
}

.vblessons-progress-bar{
  background:#e5e7eb;
  height:10px;
  border-radius:5px;
  overflow:hidden;
  width:100px;
  min-width:100px;
}

.vblessons-progress-bar > div{
  height:100%;
  transition:width .3s;
}

.vblessons-progress-bar.green > div{background:#10b981;}
.vblessons-progress-bar.yellow > div{background:#fbbf24;}
.vblessons-progress-bar.red > div{background:#ef4444;}
.vblessons-domain-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}

.vblessons-domain-badge{
  flex:0 0 auto;
  font-size:1.1rem;
  line-height:1;
  margin-top:2px;
}
.vblessons-domain-table td::before{
  opacity:.85;
}
/* MOBILE: turn table rows into stacked cards */
@media (max-width:768px){

  .vblessons-dashboard-summary{
    padding:1.25rem 1rem;
    margin-bottom:1.25rem;
  }

  .vblessons-gauge{
    width:160px;
    height:80px;
  }

  .vblessons-gauge span{
    font-size:1.5rem;
    top:28%;
  }

  .vblessons-domain-table,
  .vblessons-domain-table thead,
  .vblessons-domain-table tbody,
  .vblessons-domain-table th,
  .vblessons-domain-table td,
  .vblessons-domain-table tr{
    display:block;
    width:100%;
  }

  .vblessons-domain-table{
    border-collapse:separate;
    border-spacing:0;
  }

  .vblessons-domain-table thead{
    display:none;
  }

  .vblessons-domain-table tbody{
    display:flex;
    flex-direction:column;
    gap:14px;
  }

  .vblessons-domain-table tr{
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px;
    padding:14px 16px;
    box-shadow:0 4px 14px rgba(0,0,0,.12);
  }

  .vblessons-domain-table td{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:.42rem 0;
    border:none;
    font-size:.95rem;
    line-height:1.35;
    text-align:right;
  }

  .vblessons-domain-table td::before{
    content:attr(data-label);
    font-weight:700;
    opacity:.9;
    text-align:left;
    flex:0 0 110px;
  }

  .vblessons-domain-table td:first-child{
    display:block;
    padding:0 0 .75rem 0;
    margin-bottom:.4rem;
    border-bottom:1px solid rgba(255,255,255,.10);
    text-align:left;
  }

  .vblessons-domain-table td:first-child::before{
    display:none;
  }

  .vblessons-domain-table td:first-child .vblessons-domain-link{
    display:inline-block;
    font-size:1.15rem;
    font-weight:800;
    line-height:1.28;
    word-break:break-word;
    max-width:100%;
  }

  .vblessons-domain-table td:last-child{
    display:block;
    padding-top:.7rem;
  }

  .vblessons-domain-table td:last-child::before{
    display:block;
    margin-bottom:.45rem;
    text-align:left;
  }

  .vblessons-progress-bar{
    width:100%;
    min-width:0;
    height:12px;
    border-radius:999px;
    margin:0;
    background:rgba(255,255,255,.22);
  }

  .vblessons-progress-bar > div{
    border-radius:999px;
  }
}
/* Force dashboard text/links white */
.vblessons-dashboard-summary,.vblessons-domain-table,.vblessons-domain-table th,.vblessons-domain-table td,.vblessons-domain-link,.vblessons-domain-link:visited,.vblessons-domain-link:hover,.vblessons-domain-link:active{color:#ffffff !important;}
.vblessons-domain-link:hover{text-decoration:underline;}
/* Badges grid */
.vblessons-badges-grid{display:grid;grid-template-columns:repeat(var(--vbcols,5),minmax(0,1fr));gap:16px;margin:12px 0 24px}
.vblessons-badge-card{background:rgba(17,24,39,.5);color:#fff;border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;box-shadow:0 10px 20px rgba(0,0,0,.12)}
.vblessons-badge-title{font-weight:700}
.vblessons-badge-date{opacity:.85;font-size:.9rem}
.vblessons-badge-img{width:100%;height:100%;object-fit:cover;border-radius:12px}
@media (max-width:768px){.vblessons-badges-grid{grid-template-columns:repeat(var(--vbcols,2),minmax(0,1fr))}}
@media (max-width: 500px) {.vblessons-tabs {flex-wrap: wrap;justify-content: center;}.vblessons-tab-button {flex: 1 1 100%;}}