/**
 * GSTR-1 JSON Validation Tool - Stylesheet
 * Extracted from inline <style> block in tools/gstr-1-json-validation/beta/index.php
 */
  :root{
    --gv-ink:#152033;
    --gv-ink-soft:#5b6478;
    --gv-line:#e4e8f0;
    --gv-bg-soft:#f6f8fb;
    --gv-brand:#2451d6;
    --gv-brand-dark:#1a3aa3;
    --gv-good:#0c8c5e;
    --gv-good-bg:#e9f8f1;
    --gv-warn:#b3791f;
    --gv-warn-bg:#fdf3e2;
    --gv-bad:#c23b3b;
    --gv-bad-bg:#fcebec;
    --gv-radius:14px;
  }

  .gv-wrap{ font-family: inherit; color: var(--gv-ink); }

  /* ---------- Upload zone ---------- */
  .gv-uploadcard{
    background: linear-gradient(180deg,#ffffff 0%, var(--gv-bg-soft) 100%);
    border:1px solid var(--gv-line);
    border-radius: var(--gv-radius);
  }
  .gv-dropzone{
    border:2px dashed #c7d0e0;
    border-radius: 12px;
    background:#fff;
    padding: 2.25rem 1.5rem;
    text-align:center;
    cursor:pointer;
    transition: border-color .15s ease, background .15s ease, transform .1s ease;
  }
  .gv-dropzone:hover{ border-color: var(--gv-brand); background:#fbfcff; }
  .gv-dropzone.gv-drag{ border-color: var(--gv-brand); background:#eef3ff; transform: scale(1.01); }
  .gv-dropzone input[type=file]{ display:none; }
  .gv-drop-icon{
    width:52px;height:52px;border-radius:50%;
    background: var(--gv-bg-soft);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto .75rem auto;
    color: var(--gv-brand);
  }
  .gv-filename-chip{
    display:inline-flex;align-items:center;gap:.5rem;
    background:#fff;border:1px solid var(--gv-line);
    border-radius: 999px; padding:.35rem .85rem;
    font-size:.875rem; color: var(--gv-ink-soft);
  }

  /* ---------- Stat cards ---------- */
  .gv-stat{
    border:1px solid var(--gv-line);
    border-radius: 12px;
    background:#fff;
    padding: 1rem 1.1rem;
    display:flex; align-items:center; gap:.85rem;
  }
  .gv-stat-icon{
    width:40px;height:40px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
  }
  .gv-stat-num{ font-size:1.5rem; font-weight:700; line-height:1; font-variant-numeric: tabular-nums; }
  .gv-stat-label{ font-size:.78rem; color: var(--gv-ink-soft); text-transform:uppercase; letter-spacing:.04em; }
  .gv-stat--error .gv-stat-icon{ background: var(--gv-bad-bg); color: var(--gv-bad); }
  .gv-stat--warn .gv-stat-icon{ background: var(--gv-warn-bg); color: var(--gv-warn); }
  .gv-stat--fix .gv-stat-icon{ background:#eaf0fe; color: var(--gv-brand); }
  .gv-stat--ok .gv-stat-icon{ background: var(--gv-good-bg); color: var(--gv-good); }

  /* ---------- Error list ---------- */
  .gv-toolbar{
    display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;
    margin-bottom: .85rem;
  }
  .gv-search{ max-width: 260px; }
  .gv-chip-filter{
    border:1px solid var(--gv-line); background:#fff; color: var(--gv-ink-soft);
    border-radius: 999px; padding:.3rem .8rem; font-size:.82rem; cursor:pointer;
    display:inline-flex; align-items:center; gap:.4rem; transition:.12s ease;
  }
  .gv-chip-filter .badge{ font-weight:600; }
  .gv-chip-filter.active{ border-color: var(--gv-brand); color: var(--gv-brand); background:#eef3ff; }
  .gv-chip-filter:hover{ border-color:#aebbd6; }

  .gv-issue-list{ max-height: 460px; overflow-y:auto; border:1px solid var(--gv-line); border-radius: 12px; }
  .gv-issue{
    display:flex; gap:.7rem; align-items:flex-start;
    padding:.7rem .9rem; border-bottom:1px solid var(--gv-line);
    cursor:pointer; background:#fff; transition: background .1s ease;
  }
  .gv-issue:last-child{ border-bottom:none; }
  .gv-issue:hover{ background: var(--gv-bg-soft); }
  .gv-issue-dot{ width:9px;height:9px;border-radius:50%; margin-top:.4rem; flex-shrink:0; }
  .gv-issue--error .gv-issue-dot{ background: var(--gv-bad); }
  .gv-issue--warning .gv-issue-dot{ background: var(--gv-warn); }
  .gv-issue-body{ flex:1; min-width:0; }
  .gv-issue-msg{ font-size:.875rem; line-height:1.4; }
  .gv-issue-meta{ font-size:.76rem; color: var(--gv-ink-soft); margin-top:.15rem; display:flex; gap:.5rem; flex-wrap:wrap;}
  .gv-issue-meta .badge{ font-weight:500; }
  .gv-issue-go{ color:#aab2c5; flex-shrink:0; margin-top:.25rem; }

  .gv-empty{ text-align:center; padding: 2.25rem 1rem; color: var(--gv-ink-soft); }

  /* ---------- Editor panel ---------- */
  .gv-editor-card{ border:1px solid var(--gv-line); border-radius: var(--gv-radius); overflow:hidden; }
  .gv-editor-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:.6rem .9rem; background: var(--gv-bg-soft); border-bottom:1px solid var(--gv-line);
    font-size:.82rem; color: var(--gv-ink-soft);
  }
  .gv-editor-dots{ display:flex; gap:5px; }
  .gv-editor-dots span{ width:9px;height:9px;border-radius:50%; display:inline-block; }
  #gvEditor{ height: 460px; }

  /* ---------- Health ring (signature element) ---------- */
  .gv-health{ display:flex; align-items:center; gap:1rem; }
  .gv-health-ring{ position:relative; width:84px; height:84px; flex-shrink:0; }
  .gv-health-ring svg{ width:100%; height:100%; transform:rotate(-90deg); }
  .gv-health-ring-track{ fill:none; stroke:#eef1f6; stroke-width:8; }
  .gv-health-ring-val{ fill:none; stroke-width:8; stroke-linecap:round; transition: stroke-dasharray .5s ease; }
  .gv-health-pct{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-weight:700; font-size:1.1rem;
  }

  @media (max-width: 767.98px){
    #gvEditor{ height: 360px; }
    .gv-issue-list{ max-height: 360px; }
  }
