/* Scoped theme */
.vgsp-wrap { --bg:#fff; --fg:#111827; --muted:#6b7280; --card:#fff; --border:#e5e7eb; --accent:#10b981; --accent10:#10b9811a; font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif; border:1px solid var(--border); border-radius:16px; padding:20px; }
.vgsp-theme.mode-dark { --bg:#0b0f16; --fg:#e5e7eb; --muted:#9ca3af; --card:#0f1520; --border:#1f2937; }

.vgsp-header { display:flex; gap:12px; align-items:center; justify-content:space-between; margin-bottom:12px; }
.vgsp-title { font-size:20px; font-weight:700; }
.vgsp-sub { color:var(--muted); font-size:14px; }
.vgsp-mode-btn { border:1px solid var(--border); background:var(--card); color:var(--fg); padding:8px 12px; border-radius:10px; cursor:pointer; font-size:12px; }
.vgsp-layout { display:grid; grid-template-columns: 1fr 320px; gap:18px; }
.vgsp-card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:16px; }
.vgsp-grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.vgsp-label { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:6px; display:block; }
.vgsp-input { width:100%; border:1px solid var(--border); border-radius:12px; padding:10px 12px; background:var(--bg); color:var(--fg); }
.vgsp-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.vgsp-btn { background:var(--accent); color:#fff; border:none; border-radius:12px; padding:10px 14px; cursor:pointer; font-weight:600; }
.vgsp-btn.vgsp-ghost { background:transparent; color:var(--fg); border:1px solid var(--border); }
.vgsp-icon-btn { border:1px solid var(--border); background:var(--card); color:var(--fg); border-radius:10px; padding:6px 10px; cursor:pointer; }
.vgsp-notice { display:none; margin-top:10px; border:1px solid var(--accent); background:var(--accent10); color:var(--fg); border-radius:12px; padding:10px 12px; font-size:14px; line-height:1.4; }
.vgsp-notice.is-show { display:block; }
.vgsp-notice-compact { margin:0 0 10px 0; }

/* Steps visibility hardening */
.vgsp-step{display:none !important;}
.vgsp-step.is-active{display:block !important;}
.vgsp-only-step2{display:none;}

/* Progress */
.vgsp-progress { margin:4px 0 16px 0; }
.vgsp-progress-line { height:4px; background:var(--border); border-radius:999px; position:relative; }
.vgsp-progress-fill { position:absolute; top:0; left:0; height:100%; width:0%; background:var(--accent); border-radius:999px; transition:width .25s ease; }
.vgsp-progress-steps { display:flex; justify-content:space-between; margin-top:8px; }
.vgsp-pip { text-align:center; width:33.333%; color:var(--muted); }
.vgsp-pip .n { display:inline-flex; width:28px; height:28px; border-radius:999px; align-items:center; justify-content:center; border:2px solid var(--border); background:var(--card); color:var(--fg); }
.vgsp-pip.is-done .n, .vgsp-pip[aria-current="step"] .n { background:var(--accent); border-color:var(--accent); color:#fff; }

/* Calendar */
.vgsp-cal-head { display:grid; grid-template-columns: 36px 1fr 36px; align-items:center; gap:8px; margin-bottom:10px; }
#vgsp_month_label { text-align:center; font-weight:600; }
.vgsp-calendar { display:grid; grid-template-columns: repeat(7, 1fr); gap:8px; }
.vgsp-dayname, .vgsp-day { text-align:center; padding:8px 0; border-radius:10px; }
.vgsp-dayname { color:var(--muted); font-size:12px; }
.vgsp-day { border:1px solid var(--border); background:var(--card); cursor:pointer; transition:transform .08s ease; }
.vgsp-day.is-out { opacity:.35; cursor:default; }
.vgsp-day.is-disabled { opacity:.35; cursor:not-allowed; background:transparent; }
.vgsp-day.is-today { border-color:var(--accent); }
.vgsp-day.is-selected { background:var(--accent10); border-color:var(--accent); }
.vgsp-day:not(.is-disabled):hover{ transform: translateY(-1px); }

/* Slots */
.vgsp-slots { display:flex; flex-wrap:wrap; gap:8px; min-height:40px; }
.vgsp-slot { border:1px solid var(--border); background:var(--card); padding:8px 10px; border-radius:10px; cursor:pointer; transition:transform .08s ease; }
.vgsp-slot.is-selected { background:var(--accent); color:#fff; border-color:var(--accent); }
.vgsp-slot:hover{ transform: translateY(-1px); }

/* Aside */
.vgsp-aside { position:relative; }
.vgsp-now{ font-size:12px; color:var(--muted); margin-bottom:8px; text-align:right; }
.vgsp-summary { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:14px; margin-top:6px; }
.vgsp-summary-title { font-size:14px; font-weight:700; margin-bottom:8px; }
.vgsp-summary-row { display:flex; justify-content:space-between; font-size:14px; padding:6px 0; border-bottom:1px dashed var(--border); align-items:center; }
.vgsp-summary-row:last-child { border-bottom:none; }
.vgsp-attorney { margin-top:12px; display:flex; justify-content:center; }
.vgsp-attorney img { width:100%; max-width:220px; aspect-ratio:1; object-fit:cover; border-radius:9999px; border:1px solid var(--border); }

/* Result */
.vgsp-result { margin-top:12px; padding:12px; border:1px solid var(--border); border-radius:12px; display:none; }
.vgsp-result.is-show { display:block; }
.vgsp-result .vgsp-cta { display:flex; gap:10px; margin-top:10px; flex-wrap:wrap; }

/* Reset theme overrides inside wrap */
.vgsp-wrap * { box-sizing: border-box; }
.vgsp-wrap select.vgsp-input, .vgsp-wrap input.vgsp-input, .vgsp-wrap textarea.vgsp-input { appearance:none; -webkit-appearance:none; -moz-appearance:none; background-image:none!important; box-shadow:none!important; outline:none; }
.vgsp-wrap .vgsp-btn, .vgsp-wrap .vgsp-icon-btn { box-shadow:none!important; text-transform:none!important; letter-spacing:normal!important; }

/* Responsive */
@media (max-width: 900px){
  .vgsp-layout{ grid-template-columns: 1fr; }
  .vgsp-aside{ order:-1; }
}
@media (max-width: 640px){
  .vgsp-wrap{ padding:14px; border-radius:12px; }
  .vgsp-header{ align-items:flex-start; }
  .vgsp-grid-2{ grid-template-columns: 1fr; }
  .vgsp-actions{ justify-content:stretch; flex-direction:column-reverse; }
  .vgsp-actions .vgsp-btn{ width:100%; }
  .vgsp-calendar{ gap:5px; }
  .vgsp-dayname, .vgsp-day{ padding:7px 0; }
  .vgsp-sub{ display:none; }
}
