:root {
  /* Official USF brand colors (USF Foundation / UCM brand guidelines) */
  --gg-green: #006747;       /* USF Green, PMS 342 */
  --gg-green-dark: #005432;  /* Evergreen — official alternate for contrast */
  --gg-gold: #cfc493;        /* USF Gold, PMS 4535 */
  --gg-sand: #edebd1;        /* Sand — official alternate, light contrast */
  --gg-cream: #edebd1;
  --gg-text: #1c1c1c;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: var(--gg-sand);
  color: var(--gg-text);
}

header.gg-header {
  background: var(--gg-green);
  color: var(--gg-gold);
  padding: 1.25rem 1rem;
  text-align: center;
  border-bottom: 4px solid var(--gg-gold);
}

header.gg-header h1 {
  margin: 0;
  font-size: 1.5rem;
  letter-spacing: 0.02em;
}

header.gg-header p {
  margin: 0.25rem 0 0;
  color: var(--gg-sand);
  opacity: 0.9;
  font-size: 0.9rem;
}

main {
  max-width: 900px;
  margin: 0 auto;
  padding: 1rem;
}

.gg-card {
  background: white;
  border: 1px solid #e5e0d0;
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: 1rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.gg-btn {
  background: var(--gg-green);
  color: var(--gg-gold);
  border: none;
  border-radius: 8px;
  padding: 0.6rem 1.1rem;
  font-weight: 600;
  cursor: pointer;
  font-size: 0.95rem;
}
.gg-btn:hover { background: var(--gg-green-dark); }
.gg-btn:disabled { opacity: 0.5; cursor: not-allowed; }

.gg-btn-gold {
  background: var(--gg-gold);
  color: var(--gg-green-dark);
  border: 1px solid var(--gg-green-dark);
}

#map { height: 320px; border-radius: 10px; margin-bottom: 1rem; }

.gg-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.6rem;
}
.gg-gallery figure { margin: 0; }
.gg-gallery img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--gg-sand);
  border-radius: 8px;
  border: 2px solid var(--gg-gold);
}
.gg-gallery figcaption {
  font-size: 0.75rem;
  color: #555;
  margin-top: 0.25rem;
}

.gg-upload-form input, .gg-upload-form textarea {
  width: 100%;
  padding: 0.5rem;
  margin-bottom: 0.6rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.9rem;
}

.gg-status-msg { font-size: 0.85rem; margin-top: 0.5rem; }
.gg-status-msg.ok { color: var(--gg-green); }
.gg-status-msg.err { color: #b00020; }

.gg-queue-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  border-bottom: 1px solid #eee;
  padding: 0.75rem 0;
}
.gg-queue-item img { width: 120px; border-radius: 6px; }
.gg-queue-item .scores { font-size: 0.75rem; color: #666; }

.gg-qr-card { text-align: center; }
.gg-qr-card summary {
  text-align: left;
  cursor: pointer;
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--gg-green-dark);
  list-style: none;
}
.gg-qr-card summary::-webkit-details-marker { display: none; }
.gg-qr-card summary::after {
  content: "▸";
  float: right;
  transition: transform 0.15s ease;
}
.gg-qr-card[open] summary::after { transform: rotate(90deg); }
.gg-qr-card canvas { margin: 0.75rem auto 0.5rem; display: block; }
.gg-qr-url {
  font-size: 0.8rem;
  color: #555;
  word-break: break-all;
}
