/* ═══════════════════════════════════════════════════════════════
   SiteCORE — Visual Overhaul Pass 2
   Donut charts, section layouts, row expansion, availability
   calendar, pipeline summary cards
   ═══════════════════════════════════════════════════════════════ */

/* ── Donut Charts (SEO + Security) ───────────────────────── */
.vp2-donut-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0}
.vp2-donut-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;transition:border-color 0.2s}
.vp2-donut-card:hover{border-color:rgba(59,130,246,0.3)}
.vp2-donut-svg{width:100px;height:100px}
.vp2-donut-svg circle{fill:none;stroke-width:8;stroke-linecap:round}
.vp2-donut-svg .donut-bg{stroke:var(--bg-secondary)}
.vp2-donut-svg .donut-fill{transition:stroke-dashoffset 0.8s cubic-bezier(0.4,0,0.2,1)}
.vp2-donut-center{font-size:18px;font-weight:900;font-family:var(--font-mono)}
.vp2-donut-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;font-weight:600}
.vp2-donut-count{font-size:22px;font-weight:900;font-family:var(--font-mono)}
.vp2-donut-pct{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}

/* ── Section Container Cards ─────────────────────────────── */
.vp2-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:0;margin-bottom:16px;overflow:hidden}
.vp2-section-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}
.vp2-section-head h3{font-size:13px;font-weight:700;margin:0;display:flex;align-items:center;gap:8px}
.vp2-section-head h3 svg{width:16px;height:16px;opacity:0.6}
.vp2-section-head .vp2-sec-badge{font-size:10px;font-weight:700;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-card);padding:2px 8px;border-radius:10px}
.vp2-section-body{padding:16px}

/* ── Row Expansion ───────────────────────────────────────── */
.data-table tbody tr.vp2-expandable{cursor:pointer;transition:background 0.15s}
.data-table tbody tr.vp2-expandable:hover{background:var(--accent-light)!important}
.data-table tbody tr.vp2-expandable td:last-child .vp2-expand-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;transition:transform 0.2s,background 0.15s}
.data-table tbody tr.vp2-expandable td:last-child .vp2-expand-icon:hover{background:var(--bg-secondary)}
.data-table tbody tr.vp2-expanded td:last-child .vp2-expand-icon{transform:rotate(180deg)}
.vp2-detail-row{display:none}
.vp2-detail-row.open{display:table-row}
.vp2-detail-row td{padding:0!important;border-bottom:1px solid var(--border)!important}
.vp2-detail-panel{padding:16px 20px;background:var(--bg-secondary);border-left:3px solid var(--accent);animation:vp2SlideDown 0.2s ease}
@keyframes vp2SlideDown{from{opacity:0;max-height:0}to{opacity:1;max-height:400px}}
.vp2-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.vp2-detail-item{font-size:11px}
.vp2-detail-item .vp2-dl{color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-bottom:2px}
.vp2-detail-item .vp2-dv{font-weight:700;font-family:var(--font-mono);font-size:12px}

/* ── GitHub-Style Availability Calendar (Uptime) ─────────── */
.vp2-avail-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;margin:16px 0}
.vp2-avail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.vp2-avail-header h3{font-size:13px;font-weight:700;margin:0;display:flex;align-items:center;gap:8px}
.vp2-avail-header h3 svg{width:16px;height:16px;opacity:0.6}
.vp2-avail-legend{display:flex;align-items:center;gap:8px;font-size:9px;color:var(--text-muted)}
.vp2-avail-legend .vp2-leg-sq{width:10px;height:10px;border-radius:2px}
.vp2-avail-grid{display:grid;grid-template-columns:repeat(13,1fr);gap:3px}
.vp2-avail-day{aspect-ratio:1;border-radius:2px;position:relative;transition:transform 0.1s}
.vp2-avail-day:hover{transform:scale(1.6);z-index:10}
.vp2-avail-day.up{background:#0cce6b}
.vp2-avail-day.degraded{background:#ffa400}
.vp2-avail-day.down{background:#ff4e42}
.vp2-avail-day.no-data{background:var(--bg-secondary);opacity:0.3}
.vp2-avail-day[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);font-size:9px;padding:3px 8px;border-radius:4px;white-space:nowrap;z-index:100;pointer-events:none;font-family:var(--font-mono)}
.vp2-avail-months{display:grid;grid-template-columns:repeat(13,1fr);gap:3px;margin-bottom:4px}
.vp2-avail-months span{font-size:8px;color:var(--text-muted);text-align:center;font-weight:600}
.vp2-avail-site-label{font-size:11px;font-weight:700;margin-bottom:6px;color:var(--text-primary)}
.vp2-avail-site-block{margin-bottom:14px}
.vp2-avail-site-block:last-child{margin-bottom:0}

/* ── Pipeline / Summary Cards ────────────────────────────── */
.vp2-pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0 16px}
.vp2-pipe-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;position:relative;overflow:hidden;transition:border-color 0.2s,transform 0.15s}
.vp2-pipe-card:hover{border-color:rgba(59,130,246,0.3);transform:translateY(-1px)}
.vp2-pipe-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-md) var(--radius-md) 0 0}
.vp2-pipe-card.green::before{background:#0cce6b}
.vp2-pipe-card.yellow::before{background:#ffa400}
.vp2-pipe-card.red::before{background:#ff4e42}
.vp2-pipe-card.blue::before{background:#3b82f6}
.vp2-pipe-card.purple::before{background:#a855f7}
.vp2-pipe-card.cyan::before{background:#06b6d4}
.vp2-pipe-val{font-size:20px;font-weight:900;font-family:var(--font-mono);line-height:1}
.vp2-pipe-lbl{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-top:4px}
.vp2-pipe-sub{font-size:10px;color:var(--text-secondary);margin-top:2px;font-family:var(--font-mono)}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:768px){
  .vp2-donut-row{grid-template-columns:repeat(2,1fr)}
  .vp2-pipeline{grid-template-columns:repeat(2,1fr)}
  .vp2-avail-grid{grid-template-columns:repeat(7,1fr)}
  .vp2-avail-months{grid-template-columns:repeat(7,1fr)}
  .vp2-detail-grid{grid-template-columns:1fr 1fr}
}

/* ── Dark/Light theme specifics ──────────────────────────── */
[data-theme="light"] .vp2-section-head{background:rgba(0,0,0,0.02)}
[data-theme="light"] .vp2-detail-panel{background:rgba(0,0,0,0.02)}
[data-theme="light"] .vp2-avail-day.no-data{background:#e2e8f0;opacity:0.5}
