/*
 * Saved games screen (<hokito-saved-games>, WP09 T047). Tokens only.
 * Unavailable records are marked by text (the reason) and a dashed border,
 * not by colour alone. Phone layout: one column, full-width actions that
 * keep the 44 px touch target.
 */

.saved {
  display: grid;
  gap: var(--space-4);
  max-width: var(--content-max-width);
}

.saved__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.saved__status:empty {
  display: none;
}

.saved__status,
.saved__notice,
.saved__loading {
  color: var(--color-text-muted);
}

.saved__notice {
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-raised);
  color: var(--color-text);
}

.saved__empty {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-4);
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-md);
}

.saved__empty p + p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

.saved__list {
  display: grid;
  gap: var(--space-3);
  padding: 0;
  list-style: none;
}

.saved__item {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-raised);
}

.saved__item--unavailable {
  border-style: dashed;
  background: var(--color-surface);
  color: var(--color-text-muted);
}

.saved__title {
  font-size: var(--text-md);
  overflow-wrap: anywhere;
}

.saved__meta,
.saved__reason {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.saved__actions,
.saved__confirm,
.saved__rename {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.saved__confirm {
  padding-top: var(--space-2);
  border-top: 1px solid var(--color-border);
}

.saved__confirm p {
  flex-basis: 100%;
}

.saved__rename label {
  flex-basis: 100%;
  font-weight: 600;
}

.saved__rename input {
  flex: 1 1 12rem;
  min-height: var(--touch-target);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}

.saved__error {
  flex-basis: 100%;
  color: var(--color-danger);
  font-size: var(--text-sm);
}

.saved .button--danger {
  border-color: var(--color-danger);
  color: var(--color-danger);
}

@media (max-width: 719.98px) {
  .saved__header > button,
  .saved__actions > button,
  .saved__confirm > button,
  .saved__rename > button {
    flex: 1 1 calc(50% - var(--space-2));
  }

  .saved__header > button {
    flex-basis: 100%;
  }
}
