:root {
  --dark-green: #0b1e0c;
  --light-green: #acff03;
  --bg-light: #f6f9fc;
  --white: #ffffff;
  --text-dark: #333333;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Plus Jakarta Sans', sans-serif;
  background: var(--white);
  color: var(--text-dark);
}

header {
  text-align: center;
  padding: 2rem 1rem;
}
header h1 {
  font-size: 2rem;
  margin-bottom: .5rem;
}
header p {
  font-size: 1rem;
  max-width: 700px;
  margin: 0 auto;
}

/* Main tab bar container */
.tabs-container {
  background: var(--bg-light);
  padding: .5rem 0;
  overflow-x: auto;
}
.tabs {
  display: flex;
  justify-content: center;
  gap: 1rem;
}

/* Pill-shaped, icon+label tabs */
.tabs .tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .25rem;             /* space between icon & text */
  padding: .75rem 1rem;
  border-radius: 12px;     /* pill shape */
  cursor: pointer;
  transition: background .2s, color .2s;
}
.tabs .tab i {
  font-size: 1.5rem;
  line-height: 1;
}
.tabs .tab.active {
  background: var(--light-green);
  color: var(--dark-green);
}

/* Layout */
.container {
  display: flex;
  gap: 2rem;
  max-width: 1100px;
  margin: 2rem auto;
  padding: 0 1rem;
}
.left, .right {
  background: var(--bg-light);
  padding: 1.5rem;
  border-radius: 12px;
}
.left { flex: 2; }
.right { flex: 1; text-align: center; }

/* Form fields */
.form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: .5rem;
}
.form-group input[type="text"] {
  width: 100%;
  padding: .75rem;
  border: 1px solid #ccc;
  border-radius: 6px;
}

/* Sub-tabs */
.customize { margin-top: 1rem; }
.tabs-sub {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}
.tabs-sub div {
  flex: 1;
  padding: .5rem;
  text-align: center;
  border-bottom: 2px solid transparent;
  cursor: pointer;
}
.tabs-sub .active {
  border-color: var(--dark-green);
  font-weight: 600;
}

/* Panels */
.panel { display: none; }
.panel.active { display: block; }

/* Color & Frame pickers */
.colors, .frames {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.colors label {
  flex: 1;
  font-size: .9rem;
}
.frames .frame-item {
  width: 80px; height: 80px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.frames .frame-item.selected {
  border-color: var(--dark-green);
}
.frames img {
  width: 100%; height: 100%;
  object-fit: contain;
}

/* Buttons and QR preview */
.btn {
  margin-top: 1.5rem;
  padding: .75rem 1.5rem;
  background: var(--light-green);
  color: var(--dark-green);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}
.btn:hover { filter: brightness(0.9); }

.qr-wrapper { position: relative; display: inline-block; }
.qr-box {
  width: 200px; height: 200px;
  background: var(--white);
  padding: 1rem; border-radius: 8px;
}
.frame-over {
  position: absolute; top: 0; left: 0;
  width: 200px; height: 200px;
  pointer-events: none;
}

/* Download controls */
.download { margin-top: 1rem; }
.download label { margin-right: 1rem; font-size: .9rem; }
.download button {
  padding: .75rem 1.5rem;
  background: var(--dark-green);
  color: var(--white);
  border: none;
  border-radius: 6px;
  cursor: pointer;
}

@media (max-width: 900px) {
  .container { flex-direction: column; }
}
