
:root {
  --cgp-bg: rgba(15, 23, 42, 0.62);
  --cgp-surface: #ffffff;
  --cgp-surface-2: #f8fafc;
  --cgp-surface-3: #f1f5f9;
  --cgp-text: #0f172a;
  --cgp-muted: #64748b;
  --cgp-border: #e2e8f0;
  --cgp-primary: #15803d;
  --cgp-primary-dark: #166534;
  --cgp-accent: #ecfdf3;
  --cgp-secondary: #eef2ff;
  --cgp-secondary-text: #1e293b;
  --cgp-shadow: 0 24px 60px rgba(15, 23, 42, 0.20);
  --cgp-shadow-soft: 0 18px 38px rgba(15, 23, 42, 0.10);
  --cgp-radius: 24px;
}
#cgp-root { position: relative; z-index: 2147483000; }
.cgp-banner { position: fixed; inset: auto 18px 18px 18px; z-index: 2147483000; }
.cgp-card, .cgp-modal__dialog { background: var(--cgp-surface); color: var(--cgp-text); border: 1px solid rgba(226, 232, 240, 0.95); box-shadow: var(--cgp-shadow); border-radius: var(--cgp-radius); }
.cgp-card { position: relative; overflow: hidden; max-width: 1180px; margin: 0 auto; padding: 28px; display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(300px, 0.95fr); gap: 22px; }
.cgp-card::before { content:""; position:absolute; inset:0 0 auto 0; height:5px; background:linear-gradient(90deg,var(--cgp-primary),#22c55e 60%,#86efac); }
.cgp-card__content, .cgp-card__panel { position: relative; z-index: 1; }
.cgp-card__content h3, .cgp-modal__header h3, .cgp-category h4 { margin:0; }
.cgp-card__content h3 { font-size: clamp(1.25rem, 1.1rem + 0.8vw, 1.8rem); line-height:1.15; }
.cgp-card__content p, .cgp-category p, .cgp-modal__intro p { margin:10px 0 0; color:var(--cgp-muted); line-height:1.65; }
.cgp-eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--cgp-primary); font-weight:800; margin-bottom:10px; }
.cgp-eyebrow::before { content:""; width:8px; height:8px; border-radius:50%; background:currentColor; box-shadow:0 0 0 6px rgba(21,128,61,.10); }
.cgp-card__chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.cgp-chip { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px; border:1px solid var(--cgp-border); background:var(--cgp-surface-2); color:var(--cgp-secondary-text); font-size:.9rem; font-weight:700; }
.cgp-chip::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--cgp-primary); }
.cgp-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.cgp-links a { display:inline-flex; align-items:center; gap:8px; color:var(--cgp-primary-dark); font-weight:700; text-decoration:none; padding:9px 12px; background:var(--cgp-accent); border:1px solid #bbf7d0; border-radius:999px; }
.cgp-links a:hover { text-decoration:none; transform:translateY(-1px); }
.cgp-card__panel { display:flex; flex-direction:column; justify-content:space-between; gap:14px; padding:18px; background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%); border:1px solid var(--cgp-border); border-radius:22px; box-shadow: inset 0 1px 0 rgba(255,255,255,.85); }
.cgp-card__panel-note { color:var(--cgp-muted); font-size:.92rem; line-height:1.55; }
.cgp-actions, .cgp-modal__footer { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end; }
.cgp-card__panel .cgp-actions { display:grid; grid-template-columns:1fr; }
.cgp-btn, .cgp-reopen, .cgp-inline-btn, .cgp-icon-btn { border:0; cursor:pointer; font:inherit; }
.cgp-btn, .cgp-reopen, .cgp-inline-btn { border-radius:16px; padding:13px 18px; font-weight:800; transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease; }
.cgp-btn:hover, .cgp-reopen:hover, .cgp-inline-btn:hover { transform:translateY(-1px); }
.cgp-btn--primary, .cgp-reopen, .cgp-inline-btn { background:linear-gradient(135deg,var(--cgp-primary),var(--cgp-primary-dark)); color:#fff; box-shadow:0 14px 26px rgba(21,128,61,.20); }
.cgp-btn--secondary { background:var(--cgp-secondary); color:var(--cgp-secondary-text); border:1px solid #c7d2fe; }
.cgp-btn--ghost { background:#eef2f7; color:var(--cgp-text); border:1px solid #dbe2ea; }
.cgp-modal { position:fixed; inset:0; z-index:2147483001; padding:24px; }
.cgp-modal__backdrop { position:absolute; inset:0; background:var(--cgp-bg); backdrop-filter: blur(4px); }
.cgp-modal__dialog { position:relative; max-width:920px; margin:min(4vh,36px) auto; padding:26px; max-height:calc(100vh - 48px); overflow:auto; }
.cgp-modal__header, .cgp-category { display:flex; justify-content:space-between; gap:18px; }
.cgp-modal__header { align-items:center; margin-bottom:16px; }
.cgp-modal__intro { margin-bottom:18px; padding:16px 18px; background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%); border:1px solid var(--cgp-border); border-radius:18px; }
.cgp-modal__body { display:grid; gap:14px; }
.cgp-category { align-items:center; border:1px solid var(--cgp-border); background:#fff; border-radius:20px; padding:18px; box-shadow:var(--cgp-shadow-soft); }
.cgp-category.is-required { background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%); }
.cgp-category__meta { min-width:0; }
.cgp-category__topline { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:2px; }
.cgp-category__pill { display:inline-flex; align-items:center; padding:5px 10px; border-radius:999px; font-size:.78rem; font-weight:800; color:var(--cgp-primary-dark); background:var(--cgp-accent); border:1px solid #bbf7d0; }
.cgp-modal__footer { margin-top:22px; padding-top:18px; border-top:1px solid var(--cgp-border); }
.cgp-icon-btn { background:#eef2f7; color:var(--cgp-text); width:42px; height:42px; border-radius:14px; font-size:24px; line-height:1; }
.cgp-switch { position:relative; display:inline-flex; width:60px; height:34px; flex:0 0 auto; }
.cgp-switch input { opacity:0; width:0; height:0; }
.cgp-switch__slider { position:absolute; inset:0; background:#cbd5e1; border-radius:999px; transition:.2s ease; }
.cgp-switch__slider::before { content:""; position:absolute; width:26px; height:26px; left:4px; top:4px; background:#fff; border-radius:50%; transition:.2s ease; box-shadow:0 2px 8px rgba(15,23,42,.18); }
.cgp-switch input:checked + .cgp-switch__slider { background:var(--cgp-primary); }
.cgp-switch input:checked + .cgp-switch__slider::before { transform:translateX(26px); }
.cgp-switch input:disabled + .cgp-switch__slider { background:#94a3b8; opacity:.75; }
.cgp-reopen { position:fixed; z-index:2147483000; box-shadow:0 12px 24px rgba(21,128,61,.20); padding:10px 14px; min-height:40px; border-radius:14px; font-size:.88rem; line-height:1.1; width:auto; max-width:calc(100vw - 24px); }
.cgp-reopen--bottom-left { left:18px; bottom:18px; }
.cgp-reopen--bottom-right { right:18px; bottom:18px; }
.cgp-reopen--top-left { left:18px; top:18px; }
.cgp-reopen--top-right { right:18px; top:18px; }
.cgp-inline-btn { display:inline-flex; align-items:center; justify-content:center; }
html.cgp-modal-open, html.cgp-modal-open body { overflow:hidden; }
.cgp-toast { position:fixed; top:20px; right:20px; z-index:2147483002; min-width:280px; max-width:min(92vw,420px); padding:14px 16px; border-radius:18px; color:#fff; font-weight:800; box-shadow:0 20px 50px rgba(15,23,42,.28); opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity .22s ease, transform .22s ease; }
.cgp-toast.is-success { background:linear-gradient(135deg,#15803d,#166534); }
.cgp-toast.is-warning { background:linear-gradient(135deg,#b45309,#92400e); }
.cgp-toast.is-visible { opacity:1; transform:translateY(0); }
@media (max-width: 980px) { .cgp-card { grid-template-columns:1fr; padding:22px; } .cgp-card__panel .cgp-actions { grid-template-columns:repeat(2,minmax(0,1fr)); } .cgp-card__panel .cgp-actions .cgp-btn--primary { grid-column:1 / -1; } }
@media (max-width: 860px) { .cgp-banner { inset:auto 12px 12px 12px; } .cgp-card { padding:18px; } .cgp-modal { padding:10px; } .cgp-modal__dialog { margin:0; padding:18px; max-height:calc(100vh - 20px); } .cgp-category, .cgp-modal__header, .cgp-modal__footer { flex-direction:column; align-items:stretch; } .cgp-card__panel .cgp-actions, .cgp-actions, .cgp-modal__footer { display:flex; flex-direction:column; } .cgp-btn, .cgp-inline-btn, .cgp-links a { width:100%; justify-content:center; } .cgp-reopen { left:12px; right:12px; bottom:12px; top:auto; text-align:center; justify-content:center; } .cgp-reopen--top-left, .cgp-reopen--top-right { top:12px; bottom:auto; } .cgp-toast { top:12px; left:12px; right:12px; min-width:0; max-width:none; } }


/* v1.9.1 mobile scroll fix */
.cgp-banner { max-height: calc(100vh - 36px); overflow: auto; -webkit-overflow-scrolling: touch; }
.cgp-card { max-height: calc(100vh - 36px); overflow: auto; -webkit-overflow-scrolling: touch; }
.cgp-modal__dialog { -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
@media (max-width: 860px) {
  .cgp-banner { top: 12px; right: 12px; bottom: 12px; left: 12px; max-height: none; }
  .cgp-card { max-height: 100%; height: auto; overflow: auto; -webkit-overflow-scrolling: touch; padding-right: 16px; }
  .cgp-card__content, .cgp-card__panel { min-width: 0; }
  .cgp-modal { padding: 8px; overflow: auto; -webkit-overflow-scrolling: touch; }
  .cgp-modal__dialog { height: auto; max-height: calc(100dvh - 16px); overflow: auto; }
}


/* v1.9.3 prettier manage button */
.cgp-reopen {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:8px 14px 8px 10px;
  min-height:42px;
  border-radius:999px;
  font-size:.83rem;
  font-weight:800;
  letter-spacing:.01em;
  color:#14532d;
  background:linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(240,253,244,.98) 100%);
  border:1px solid rgba(21,128,61,.18);
  box-shadow:0 14px 30px rgba(15,23,42,.14), 0 4px 10px rgba(21,128,61,.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.cgp-reopen::before {
  content:"⚙";
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--cgp-primary), var(--cgp-primary-dark));
  color:#fff;
  font-size:13px;
  line-height:1;
  box-shadow:0 6px 14px rgba(21,128,61,.24);
  flex:0 0 24px;
}
.cgp-reopen:hover {
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(15,23,42,.16), 0 8px 18px rgba(21,128,61,.12);
}
.cgp-reopen:active {
  transform:translateY(0);
}
.cgp-reopen:focus-visible {
  outline:none;
  box-shadow:0 0 0 4px rgba(34,197,94,.18), 0 18px 34px rgba(15,23,42,.16);
}
@media (max-width: 860px) {
  .cgp-reopen {
    min-height:40px;
    padding:8px 12px 8px 10px;
    font-size:.82rem;
  }
}


/* v2.5.0 banner variants and button styles */
.cgp-card--compact{grid-template-columns:minmax(0,2.2fr) minmax(260px,.82fr);padding:22px;gap:18px}
.cgp-card--compact .cgp-card__content h3{font-size:clamp(1.1rem,1rem + .4vw,1.45rem)}
.cgp-card--compact .cgp-card__content p{font-size:.95rem;line-height:1.55}
.cgp-card--compact .cgp-card__chips{margin-top:14px}
.cgp-card--compact .cgp-chip{padding:6px 10px;font-size:.82rem}
.cgp-card--compact .cgp-links{margin-top:14px}
.cgp-card--compact .cgp-card__panel{padding:16px;border-radius:18px}
.cgp-card--compact .cgp-btn{padding:11px 16px;border-radius:14px}
.cgp-reopen--style-solid{background:linear-gradient(135deg,var(--cgp-primary),var(--cgp-primary-dark));color:#fff;border-color:transparent}
.cgp-reopen--style-solid::before{background:rgba(255,255,255,.18);box-shadow:none}
.cgp-reopen--style-solid:hover{box-shadow:0 18px 34px rgba(21,128,61,.24)}
.cgp-reopen--style-minimal{background:#fff;color:#0f172a;border-color:#dbe4ef;box-shadow:0 12px 24px rgba(15,23,42,.10)}
.cgp-reopen--style-minimal::before{background:#eef2f7;color:#14532d;box-shadow:none}
.cgp-reopen--size-medium{min-height:46px;padding:10px 16px 10px 12px;font-size:.88rem}
.cgp-reopen--size-medium::before{width:26px;height:26px;flex-basis:26px}
@media (max-width:980px){.cgp-card--compact{grid-template-columns:1fr}}


/* v2.9.0 premium frontend */
.cgp-banner--premium .cgp-card{grid-template-columns:minmax(0,1.75fr) minmax(320px,1fr);padding:30px}
.cgp-banner--premium .cgp-card__content{padding-right:8px}
.cgp-banner--premium .cgp-card__panel{background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%)}
.cgp-theme--elegant{--cgp-primary:#0f766e;--cgp-primary-dark:#115e59;--cgp-accent:#ecfeff;--cgp-secondary:#f0fdfa}
.cgp-theme--dark{--cgp-bg:rgba(2,6,23,.78);--cgp-surface:#0f172a;--cgp-surface-2:#111827;--cgp-surface-3:#1f2937;--cgp-text:#e5eefc;--cgp-muted:#94a3b8;--cgp-border:#334155;--cgp-primary:#22c55e;--cgp-primary-dark:#16a34a;--cgp-accent:#052e16;--cgp-secondary:#1e293b;--cgp-secondary-text:#e2e8f0}
.cgp-theme--dark .cgp-card,.cgp-theme--dark .cgp-modal__dialog,.cgp-theme--dark .cgp-category{box-shadow:0 24px 60px rgba(2,6,23,.45)}
.cgp-theme--dark .cgp-links a,.cgp-theme--dark .cgp-chip,.cgp-theme--dark .cgp-card__panel,.cgp-theme--dark .cgp-modal__intro{border-color:#334155}
.cgp-theme--dark .cgp-icon-btn,.cgp-theme--dark .cgp-btn--ghost{background:#1f2937;color:#e5eefc;border-color:#334155}
.cgp-modal__summary{display:flex;flex-direction:column;gap:6px}.cgp-summary-label{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--cgp-primary)}
.cgp-category__services{margin-top:12px;display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:14px;background:var(--cgp-surface-2);border:1px solid var(--cgp-border);font-size:.88rem;color:var(--cgp-muted)}
.cgp-category__services strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--cgp-text)}
.cgp-reopen__icon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:rgba(255,255,255,.82);font-size:12px;line-height:1;flex:0 0 22px}
.cgp-reopen--solid{background:linear-gradient(135deg,var(--cgp-primary),var(--cgp-primary-dark));color:#fff;border-color:transparent}.cgp-reopen--solid .cgp-reopen__icon{background:rgba(255,255,255,.18);color:#fff}
.cgp-reopen--minimal{background:#ffffffd9;color:var(--cgp-text);border-color:#dbe4ef;box-shadow:0 10px 20px rgba(15,23,42,.10)}
.cgp-reopen--medium{min-height:46px;padding:10px 16px 10px 12px;font-size:.87rem}
@media (max-width:860px){.cgp-banner--premium .cgp-card{padding:18px;grid-template-columns:1fr}}


/* v2.9.2 hardening + preset refinements */
.cgp-theme--elegant .cgp-card::before,
.cgp-theme--elegant .cgp-reopen::before { background: linear-gradient(90deg, #14532d, #166534 55%, #bbf7d0); }
.cgp-theme--dark .cgp-card,
.cgp-theme--dark .cgp-modal__dialog { background:#0f172a; color:#e5eef8; border-color:rgba(51,65,85,.9); }
.cgp-theme--dark .cgp-card__panel,
.cgp-theme--dark .cgp-modal__intro,
.cgp-theme--dark .cgp-category { background:#111827; color:#e5eef8; border-color:#334155; }
.cgp-theme--dark .cgp-card__content p,
.cgp-theme--dark .cgp-category p,
.cgp-theme--dark .cgp-modal__intro p,
.cgp-theme--dark .cgp-card__panel-note { color:#cbd5e1; }
.cgp-theme--dark .cgp-chip,
.cgp-theme--dark .cgp-links a,
.cgp-theme--dark .cgp-icon-btn { background:#1e293b; color:#f8fafc; border-color:#334155; }
.cgp-theme--dark .cgp-btn--ghost { background:#1e293b; color:#f8fafc; border-color:#334155; }
.cgp-theme--dark .cgp-btn--secondary { background:#172554; color:#e0e7ff; border-color:#312e81; }
.cgp-reopen__icon { display:inline-grid; place-items:center; width:20px; height:20px; font-size:14px; line-height:1; }
.cgp-reopen span:last-child { line-height:1.1; }


/* v3.9.0 soft theme */
.cgp-theme--soft{--cgp-primary:#0f766e;--cgp-primary-dark:#115e59;--cgp-accent:#ecfeff;--cgp-secondary:#f0fdfa;--cgp-secondary-text:#134e4a;}


/* v4.0.0 brand + test helpers */
.cgp-brand{display:flex;align-items:center;margin:6px 0 10px;}
.cgp-brand img{max-height:34px;max-width:180px;object-fit:contain;display:block;}


/* v4.3.0 presets and banner layouts */
.cgp-brand-row{display:flex;align-items:center;gap:10px;margin:2px 0 12px}.cgp-brand-logo{max-height:34px;max-width:140px;object-fit:contain;border-radius:10px;padding:4px 8px;background:rgba(255,255,255,.92);border:1px solid var(--cgp-border)}
.cgp-banner--bottom-bar{inset:auto 0 0 0}.cgp-banner--bottom-bar .cgp-card{max-width:none;border-radius:24px 24px 0 0;margin:0;padding:22px 28px}
.cgp-banner--center-modal{inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.42);backdrop-filter:blur(3px)}.cgp-banner--center-modal .cgp-card{width:min(980px,100%);max-width:980px}
.cgp-banner--corner{left:auto;right:18px;bottom:18px;max-width:460px}.cgp-banner--corner .cgp-card{max-width:460px;grid-template-columns:1fr;padding:20px}.cgp-banner--corner .cgp-card__panel{padding:14px}.cgp-banner--corner .cgp-card__chips,.cgp-banner--corner .cgp-links{display:none}
.cgp-banner--full-card .cgp-card{max-width:1260px;padding:34px;grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}
.cgp-theme--dark .cgp-brand-logo{background:rgba(15,23,42,.65);border-color:#475569}
@media (max-width:860px){.cgp-banner--bottom-bar .cgp-card,.cgp-banner--full-card .cgp-card,.cgp-banner--center-modal .cgp-card{padding:18px}.cgp-banner--corner{left:12px;right:12px;max-width:none}.cgp-banner--center-modal{padding:10px}}


/* v5.1.0 premium ux polish */
.cgp-banner{opacity:0;transform:translateY(18px) scale(.985);transition:opacity .28s ease,transform .28s ease;}
.cgp-banner.is-visible{opacity:1;transform:none;}
.cgp-card,.cgp-modal__dialog{backdrop-filter:saturate(1.05);-webkit-backdrop-filter:saturate(1.05);}
.cgp-card{box-shadow:0 26px 70px rgba(15,23,42,.18);}
.cgp-card__content h3{letter-spacing:-.02em;}
.cgp-card__content p{max-width:66ch;}
.cgp-brand{display:inline-flex;align-items:center;gap:10px;margin:0 0 12px;}
.cgp-brand__logo{width:40px;height:40px;object-fit:cover;border-radius:12px;border:1px solid rgba(226,232,240,.95);background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.08);padding:4px;}
.cgp-brand__name{font-size:.95rem;font-weight:800;color:var(--cgp-text);}
.cgp-btn{position:relative;overflow:hidden;box-shadow:0 10px 22px rgba(15,23,42,.08);}
.cgp-btn--secondary:hover,.cgp-btn--ghost:hover{box-shadow:0 12px 22px rgba(15,23,42,.08);}
.cgp-category{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.cgp-category:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(15,23,42,.10);border-color:#cbd5e1;}
.cgp-modal:not([hidden]) .cgp-modal__dialog{animation:cgp-pop .24s ease both;}
.cgp-modal:not([hidden]) .cgp-modal__backdrop{animation:cgp-fade .22s ease both;}
.cgp-toast{border:1px solid rgba(255,255,255,.14);}
.cgp-theme--dark .cgp-brand__logo{background:#0f172a;border-color:#475569;}
.cgp-theme--dark .cgp-brand__name{color:#f8fafc;}
.cgp-banner--bottom-bar .cgp-card__content p{max-width:none;}
.cgp-banner--center-modal .cgp-card,.cgp-banner--full-card .cgp-card{box-shadow:0 28px 80px rgba(15,23,42,.24);}
.cgp-banner--corner .cgp-card__content p{font-size:.94rem;}
@keyframes cgp-pop{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes cgp-fade{from{opacity:0}to{opacity:1}}
@media (max-width:860px){.cgp-brand{margin-bottom:10px}.cgp-brand__logo{width:34px;height:34px;border-radius:10px}.cgp-card__content p{max-width:none}}


.cgp-consent-summary{margin-top:14px;padding:14px 16px;border:1px dashed var(--cgp-border);border-radius:16px;background:rgba(248,250,252,.9);display:grid;gap:6px}.cgp-consent-summary strong{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--cgp-primary-dark)}.cgp-consent-summary span{color:var(--cgp-muted);font-size:.92rem}
