:root {
  --gv-green: #2b8c5e;
  --gv-green-dark: #1f5639;
  --gv-purple: #3d2860;
  --gv-lavender: #a693ef;
  --gv-coral: #f08b83;
  --gv-bg: #f4f6f8;
  --gv-card: #fff;
  --gv-border: #e0e4ea;
  --gv-text: #1a1a1a;
  --gv-muted: #666;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background: var(--gv-bg);
  color: var(--gv-text);
  min-height: 100vh;
}

.gv-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--gv-card);
  border-bottom: 1px solid var(--gv-border);
}

.gv-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--gv-green-dark);
}

.gv-brand-mark {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: block;
}

.gv-logo-g { color: var(--gv-lavender); }
.gv-logo-arc { color: var(--gv-coral); margin: 0 1px; }

.gv-header-actions { display: flex; align-items: center; gap: 10px; }

.gv-badge {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gv-badge-free { background: #fff3e0; color: #b45309; border: 1px solid #fcd34d; }
.gv-badge-licensed { background: #e8f8ef; color: var(--gv-green-dark); border: 1px solid #a7e3c4; }

.gv-main {
  max-width: 720px;
  margin: 0 auto;
  padding: 20px;
}

.gv-lead {
  margin: 0 0 16px;
  color: var(--gv-muted);
  line-height: 1.5;
  font-size: 0.95rem;
}

.gv-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}

.gv-tab {
  border: 1px solid #c8e8d4;
  background: #f8fffb;
  color: var(--gv-green-dark);
  border-radius: 999px;
  padding: 8px 16px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
}
.gv-tab.is-on { background: var(--gv-green); border-color: var(--gv-green); color: #fff; }

.gv-panel {
  background: var(--gv-card);
  border: 1px solid var(--gv-border);
  border-radius: 14px;
  padding: 18px;
}

.gv-panel.hidden { display: none; }

.gv-field { margin-bottom: 12px; }

.gv-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #444;
  margin-bottom: 6px;
}

.gv-input {
  width: 100%;
  border: 2px solid #333;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 0.95rem;
  background: #fff;
  color: #1a1a1a;
}
.gv-input:focus {
  outline: none;
  border-color: var(--gv-green);
  box-shadow: 0 0 0 3px rgba(43, 140, 94, 0.25);
}

.gv-pick {
  margin: 10px 0;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px dashed var(--gv-border);
  border-radius: 10px;
  font-size: 0.88rem;
  word-break: break-all;
}
.gv-pick.muted { color: var(--gv-muted); }

.gv-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
}

.gv-btn {
  border: 1px solid var(--gv-green);
  background: #fff;
  color: var(--gv-green-dark);
  border-radius: 10px;
  padding: 10px 14px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
}
.gv-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.gv-btn-primary { background: var(--gv-green); color: #fff; border-color: var(--gv-green); }
.gv-btn-ghost { border-color: var(--gv-border); color: #555; background: transparent; }

.gv-status {
  margin-top: 14px;
  min-height: 1.4em;
  font-size: 0.88rem;
  color: var(--gv-green-dark);
}
.gv-status.is-error { color: #b91c1c; }

.gv-dialog {
  border: none;
  border-radius: 14px;
  padding: 0;
  max-width: 480px;
  width: calc(100% - 32px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.18);
}
.gv-dialog::backdrop { background: rgba(0,0,0,0.35); }
.gv-dialog-inner { padding: 20px; margin: 0; }
.gv-dialog h2 { margin: 0 0 8px; color: var(--gv-purple); }
.gv-dialog-desc { margin: 0 0 14px; color: var(--gv-muted); font-size: 0.9rem; line-height: 1.45; }
.gv-dialog-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.gv-license-status { font-size: 0.85rem; min-height: 1.2em; color: var(--gv-muted); }
.gv-license-status.ok { color: var(--gv-green-dark); }
.gv-license-status.err { color: #b91c1c; }

code {
  background: #eef2f7;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.88em;
}
