/* ============================================================
   BLACK POPPY CANON — QUICK CAPTURE (APP-011 · Sprint 5.1)
   The front door. Centered modal on desk, bottom sheet on phone.
   ============================================================ */

.capture-fab {
  position: fixed;
  right: var(--space-5);
  bottom: calc(var(--space-5) + 64px); /* stacked above the search fab */
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: var(--bp-deep-purple);
  color: var(--bp-full-moon);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--shadow-2);
  z-index: 40;
  transition: transform var(--duration) var(--ease);
}
.capture-fab:hover { transform: scale(1.06); }
.capture-fab:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }

.capture-dialog {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-2);
  padding: var(--space-5) var(--space-6);
  width: min(520px, calc(100vw - 2 * var(--space-4)));
}
.capture-dialog::backdrop { background: rgba(20, 17, 20, 0.45); }

.capture-form { display: flex; flex-direction: column; gap: var(--space-3); }

.capture-form__title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  letter-spacing: 0.04em;
  color: var(--color-heading);
  margin: 0;
}

.capture-form__hint {
  font-size: var(--text-xs);
  font-style: italic;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-2);
}

.capture-field { display: flex; flex-direction: column; gap: var(--space-1); flex: 1; }

.capture-field__label {
  font-size: var(--text-xs);
  font-style: italic;
  color: var(--color-text-muted);
}
.capture-field__label em { color: var(--color-accent); font-style: normal; }
.capture-field__optional { opacity: 0.7; }

.capture-form__row { display: flex; gap: var(--space-3); }

.capture-form__error {
  color: var(--color-accent-quiet);
  font-size: var(--text-sm);
  font-style: italic;
  margin: 0;
}

.capture-form__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

.capture-form__saved-msg { margin: var(--space-2) 0; }

/* Mobile: a bottom sheet, thumb-reachable */
@media (max-width: 640px) {
  .capture-dialog {
    margin: auto 0 0;
    width: 100vw;
    max-width: 100vw;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    border-bottom: none;
  }
  .capture-form__row { flex-direction: column; gap: var(--space-3); }
}

@media print { .capture-fab, .capture-dialog { display: none !important; } }
