.gcr-card {
  --gcr-border: #d9e2e8;
  --gcr-muted: #5f6b73;
  --gcr-bg: #f7fafb;
  --gcr-accent: #0f6e7a;
  --gcr-accent-dark: #0a515a;
  max-width: 980px;
  margin: 28px auto;
  padding: 28px;
  border: 1px solid var(--gcr-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(20, 45, 55, .08);
  font-family: inherit;
}

.gcr-card * { box-sizing: border-box; }
.gcr-header h2 { margin: 0 0 8px; font-size: clamp(1.7rem, 4vw, 2.4rem); }
.gcr-eyebrow { margin: 0 0 6px; font-weight: 700; color: var(--gcr-accent); text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; }
.gcr-intro { margin: 0 0 24px; color: var(--gcr-muted); }
.gcr-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 28px; }

.gcr-upload {
  display: flex;
  min-height: 240px;
  padding: 28px;
  border: 2px dashed #a9c3c8;
  border-radius: 16px;
  background: var(--gcr-bg);
  cursor: pointer;
  text-align: center;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
}
.gcr-upload:hover { border-color: var(--gcr-accent); }
.gcr-upload input { position: absolute; opacity: 0; pointer-events: none; }
.gcr-upload-icon { font-size: 2.4rem; line-height: 1; }
.gcr-upload span:last-child { color: var(--gcr-muted); font-size: .92rem; }
.gcr-preview-wrap { margin-top: 14px; }
.gcr-preview { width: 100%; max-height: 320px; object-fit: contain; border-radius: 12px; border: 1px solid var(--gcr-border); background: #eef3f5; }
.gcr-link-button { background: transparent; border: 0; padding: 8px 0; color: var(--gcr-accent); cursor: pointer; text-decoration: underline; }
.gcr-privacy { font-size: .82rem; color: var(--gcr-muted); margin-top: 14px; }

.gcr-field { margin-bottom: 18px; }
.gcr-field label { display: block; margin-bottom: 7px; font-weight: 700; }
.gcr-field select { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #bfcbd0; border-radius: 10px; background: #fff; font: inherit; }
.gcr-field select:focus { outline: 3px solid rgba(15, 110, 122, .15); border-color: var(--gcr-accent); }
.gcr-tip { margin-top: 9px; padding: 10px 12px; border-radius: 10px; background: #fff6e8; font-size: .9rem; }

.gcr-result { margin-top: 24px; padding: 22px; border-radius: 15px; background: #eef7f8; border: 1px solid #cfe4e7; }
.gcr-result-label { display: block; color: var(--gcr-muted); font-size: .84rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.gcr-code { margin: 5px 0 10px; font-size: clamp(2rem, 7vw, 3.2rem); line-height: 1; font-weight: 800; letter-spacing: .03em; color: var(--gcr-accent-dark); }
.gcr-result-details { line-height: 1.65; }
.gcr-copy, .gcr-reset { margin-top: 15px; min-height: 44px; border-radius: 9px; padding: 9px 15px; font-weight: 700; cursor: pointer; font: inherit; }
.gcr-copy { border: 0; background: var(--gcr-accent); color: #fff; }
.gcr-copy:hover:not(:disabled) { background: var(--gcr-accent-dark); }
.gcr-copy:disabled { opacity: .45; cursor: not-allowed; }
.gcr-reset { border: 1px solid #bfcbd0; background: #fff; color: #25343a; }

@media (max-width: 760px) {
  .gcr-card { padding: 20px; margin: 18px 0; border-radius: 14px; }
  .gcr-grid { grid-template-columns: 1fr; }
  .gcr-upload { min-height: 190px; }
}
