/* GLEE Presence Laboratory Stylesheet — tokenized per design token contract */

body.presence-lab-body {
  margin: 0;
  padding: var(--space-32) var(--space-20);
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-ui, system-ui, sans-serif);
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  box-sizing: border-box;
}

.pl-container {
  width: 100%;
  max-width: 1100px;
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.pl-header {
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--space-16);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-12);
}

.pl-header h1 {
  margin: 0;
  font-size: var(--text-24);
  font-weight: 700;
  letter-spacing: -0.02em;
  display: flex;
  align-items: center;
  gap: var(--space-10);
}

.pl-badge {
  font-size: var(--text-11);
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: var(--space-4) var(--space-8);
  border-radius: var(--radius-9999);
  background: color-mix(in srgb, var(--move) 15%, transparent);
  color: var(--move);
  border: 1px solid color-mix(in srgb, var(--move) 30%, transparent);
}

.pl-crew-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-16);
}

.pl-crew-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-12);
  padding: var(--space-20) var(--space-16);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  cursor: pointer;
  transition: border-color .2s, transform .2s, background .2s;
}

.pl-crew-card:hover {
  border-color: var(--move);
  transform: translateY(var(--gm-lift, -2px));
}

.pl-crew-card.selected {
  border-color: var(--move);
  background: color-mix(in srgb, var(--move) 12%, var(--panel));
  box-shadow: 0 0 var(--space-16) color-mix(in srgb, var(--move) 15%, transparent);
}

.pl-crew-name {
  font-size: var(--text-14);
  font-weight: 600;
  margin: 0;
}

.pl-crew-role {
  font-size: var(--text-11);
  color: var(--mist);
  margin: 0;
}

.pl-controls-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-12);
  padding: var(--space-20);
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.pl-section-title {
  font-size: var(--text-12);
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--mist);
  margin-bottom: var(--space-8);
  font-weight: 700;
}

.pl-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
}

button.pl-control-btn {
  background: color-mix(in srgb, var(--ink) 6%, transparent);
  border: 1px solid var(--line);
  color: var(--ink);
  padding: var(--space-8) var(--space-14);
  border-radius: var(--radius-6);
  font-size: var(--text-12);
  font-weight: 500;
  cursor: pointer;
  transition: all .15s ease;
}

button.pl-control-btn:hover {
  background: color-mix(in srgb, var(--ink) 12%, transparent);
  border-color: var(--mist);
}

button.pl-control-btn.active {
  background: var(--move);
  color: var(--bg);
  border-color: var(--move);
  font-weight: 700;
}

button.pl-reaction-btn {
  background: color-mix(in srgb, var(--move) 12%, var(--panel));
  border-color: color-mix(in srgb, var(--move) 35%, transparent);
  color: var(--ink);
}

button.pl-reaction-btn:hover {
  background: color-mix(in srgb, var(--move) 24%, var(--panel));
  border-color: var(--move);
}

.pl-inspector {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius-8);
  padding: var(--space-14);
  font-family: var(--font-data, monospace);
  font-size: var(--text-12);
  color: var(--move);
  overflow-x: auto;
  white-space: pre-wrap;
  max-height: 220px;
}

.pl-toggle-row {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  font-size: var(--text-13);
}
