/* Shared project controls use the suite's SNPView theme and type tokens. */
.rf-project-overlay {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: color-mix(in srgb, black 50%, transparent);
  backdrop-filter: blur(8px);
}
.rf-project-overlay.active { display: flex; }
.rf-project-dialog {
  width: min(100%, 540px);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-md);
  font-family: var(--font-ui);
  font-size: 14px;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--primary) 40%, var(--border)) var(--surface);
}
.rf-project-dialog::-webkit-scrollbar { width: 8px; }
.rf-project-dialog::-webkit-scrollbar-track { background: var(--surface); }
.rf-project-dialog::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--primary) 40%, var(--border)); border: 2px solid var(--surface); border-radius: 6px; }
.rf-project-dialog * { box-sizing: border-box; }
.rf-project-dialog header, .rf-project-dialog footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
}
.rf-project-dialog header { justify-content: space-between; border-bottom: 1px solid var(--border); }
.rf-project-dialog header h2 { margin: 0; font-size: 18px; font-weight: 600; }
.rf-project-dialog footer { justify-content: flex-end; border-top: 1px solid var(--border); }
.rf-project-fields { display: grid; gap: 14px; padding: 20px; }
.rf-project-field { display: grid; min-width: 0; gap: 5px; font-weight: 600; }
.rf-project-field[hidden] { display: none; }
.rf-project-field select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--background);
  color: var(--text);
  font: inherit;
  font-weight: 400;
}
.rf-project-dialog input, .rf-project-dialog select, .rf-project-dialog textarea {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--background);
  color: var(--text);
  font: inherit;
  font-weight: 400;
}
.rf-project-dialog textarea { resize: vertical; min-height: 64px; }
.rf-project-dialog .rf-project-icon-field input { width: 5rem; text-align: center; }
.rf-project-dialog input[type="number"] { appearance: textfield; -moz-appearance: textfield; padding-right: 32px; }
.rf-project-dialog input[type="number"]::-webkit-outer-spin-button,
.rf-project-dialog input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rf-project-number-shell { display: block; position: relative; min-width: 0; }
.rf-project-number-stepper {
  position: absolute; top: 4px; right: 4px; bottom: 4px; width: 22px;
  display: grid; grid-template-rows: 1fr 1fr; overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--border) 88%, transparent);
  border-radius: 5px; background: color-mix(in srgb, var(--surface) 88%, var(--surface-alt));
}
.rf-project-dialog .rf-project-number-stepper button {
  display: grid; place-items: center; min-width: 0; min-height: 0;
  border: 0; border-radius: 0; padding: 0; color: var(--text-muted); background: transparent;
}
.rf-project-dialog .rf-project-number-stepper button + button { border-top: 1px solid var(--border); }
.rf-project-dialog .rf-project-number-stepper button:hover { color: var(--text); background: color-mix(in srgb, var(--primary) 16%, var(--surface)); }
.rf-project-dialog .rf-project-number-stepper button:active { background: color-mix(in srgb, var(--primary) 24%, var(--surface)); }
.rf-project-number-stepper button span { width: 0; height: 0; border-left: 3px solid transparent; border-right: 3px solid transparent; }
.rf-project-number-stepper [data-project-step="1"] span { border-bottom: 4px solid currentColor; }
.rf-project-number-stepper [data-project-step="-1"] span { border-top: 4px solid currentColor; }
.rf-project-dialog button {
  padding: 7px 12px;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  background: var(--surface-alt);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.rf-project-dialog button:hover { border-color: var(--primary); }
.rf-project-dialog :is(button, input, textarea, select):focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.rf-project-dialog button:disabled { opacity: 0.5; cursor: default; }
.rf-project-dialog .rf-project-primary { color: var(--text-over-primary); background: var(--primary); border-color: var(--primary); }
.rf-project-hint { font-size: 12px; font-weight: 400; color: var(--text-muted); }
.rf-project-emoji-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: -6px; }
.rf-project-emoji-list button { display: grid; place-items: center; width: 36px; height: 34px; padding: 4px; font-size: 18px; }
.rf-project-dialog fieldset { min-width: 0; margin: 0; padding: 12px; border: 1px solid var(--border); border-radius: 8px; }
.rf-project-dialog legend { padding: 0 6px; font-weight: 600; }
.rf-project-frequency-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 78px; gap: 10px; }
.rf-project-center-row { display: grid; grid-template-columns: minmax(0, 1fr) 78px; align-items: end; gap: 10px; }
.rf-project-error, .rf-project-warning { margin: 0; font-size: 13px; }
.rf-project-error { color: var(--accent-red); }
.rf-project-warning { color: var(--text-muted); }
.rf-project-dialog [hidden] { display: none; }
.rf-project-band-chip { color: var(--text-muted); font-size: 12px; font-weight: 400; overflow-wrap: anywhere; }
.rf-project-notice {
  position: fixed;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 20001;
  display: flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 12px 16px;
  border: 1px solid var(--accent-red);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
  font: 14px var(--font-ui);
  box-shadow: var(--shadow-md);
}
.rf-project-notice button { border: 0; color: var(--primary); background: transparent; font: inherit; cursor: pointer; }
@media (max-width: 420px) {
  .rf-project-overlay { padding: 10px; }
  .rf-project-dialog { max-height: calc(100dvh - 20px); }
  .rf-project-fields, .rf-project-dialog header, .rf-project-dialog footer { padding: 12px; }
  .rf-project-frequency-row { gap: 6px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 72px; }
}
